Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD9] Parser un champ HTML

2 réponses
Avatar
Fredo MT
Bonjour à tous !

Je souhaite pouvoir parser le code HTML d'un champ HTML, pour pouvoir
remonter des infos depuis des pages webs. Est-ce quelqu'un parmi vous à déjà
utilisé un parseur avec des exemples ?

Merci d'avance pour toutes suggestions et/ou exemples

2 réponses

Avatar
patrice
"Fredo MT" a écrit dans le message de
news:442d6a78$0$3549$
Bonjour à tous !

Je souhaite pouvoir parser le code HTML d'un champ HTML, pour pouvoir
remonter des infos depuis des pages webs. Est-ce quelqu'un parmi vous à


déjà
utilisé un parseur avec des exemples ?

Merci d'avance pour toutes suggestions et/ou exemples




quand la structure de la page est connue, des simples position() suffisent
sinon faut sortir l'artillerie lourde
Avec windev, j'ai jamais fait, mais en php avec des regex on s'en sort bien
pour extraire ce qui se situe entre <balise> et </balise>
ex:

//récupérer toutes les lignes de tableaux
if (preg_match_all("/<tr[^>]*>((.|r|n)*)</tr>/U", $table[1][1],
$line)) {
for ($i=1; $i<count($line[1]); $i++) {
// pour chaque ligne
// récupérer toutes les colonnes
unset($column);
if (preg_match_all("/<td[^>]*>((.|r|n)*)</td>/U", $line[1][$i],
$column)) {
for ($j=0; $j<count($column[1]); $j++) {
// traiter chaque colonne

...
Avatar
Fredo MT
Merci, je vais regarder du côté des expressions régulières.

"patrice" a écrit dans le message de news:
442ee9d3$0$27285$

"Fredo MT" a écrit dans le message de
news:442d6a78$0$3549$
Bonjour à tous !

Je souhaite pouvoir parser le code HTML d'un champ HTML, pour pouvoir
remonter des infos depuis des pages webs. Est-ce quelqu'un parmi vous à


déjà
utilisé un parseur avec des exemples ?

Merci d'avance pour toutes suggestions et/ou exemples




quand la structure de la page est connue, des simples position() suffisent
sinon faut sortir l'artillerie lourde
Avec windev, j'ai jamais fait, mais en php avec des regex on s'en sort
bien
pour extraire ce qui se situe entre <balise> et </balise>
ex:

//récupérer toutes les lignes de tableaux
if (preg_match_all("/<tr[^>]*>((.|r|n)*)</tr>/U", $table[1][1],
$line)) {
for ($i=1; $i<count($line[1]); $i++) {
// pour chaque ligne
// récupérer toutes les colonnes
unset($column);
if (preg_match_all("/<td[^>]*>((.|r|n)*)</td>/U", $line[1][$i],
$column)) {
for ($j=0; $j<count($column[1]); $j++) {
// traiter chaque colonne

...