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

Analyser une page HTML en perl pour recuperer des variables ?

2 réponses
Avatar
Mag
Bonjour,

J'ai besoin d'un peu (meme beaucoup) d'aide car je ne
maitrise pas du tout perl ;=)

J'ai un script qui fait un certain nombre de chose et
entre autre, il interroge un site web et sauvegarde la reponse
au format HTML.

Maintenant, je doit recuperer les infos de cette page web pour
les mettre dans des variables.

Voici la page HTML:


<style>
div, table, select, input, button {font-family: Arial;
font-size: 12px}
</style>

<div>

<div style="width: 600px; margin-top: 26px; border-bottom: 3px solid
red"></div>

<p><img src="../images/fleche.gif" style="margin: 12px 12px 0px 12px"
/>Résultat</p>

Le Code Répartiteur est : LAG.<br />Le Code INSEE est : 42103.<br /><br
/>Vous êtes à <b>2689 mètres</b> du répartiteur pour une atténuation
globale de ligne de : <b>40.335 dB</b><br /><br />Le débit possible par
paire est de : <b>1280^M</b> kb/s<br /><br /><table border='1'><tr><td
align='center' white-space='nowrap'>Produit<td align='center'>1 P<td
align='center'>2 P<td align='center'>4 P<td
align='center'>Informations<br />complémentaires<tr><td
white-space='nowrap'><nobr>LigneSDSL- 75k - 500k<nobr/><br /><td
align='center'>X<td>&nbsp<td>&nbsp<td>&nbsp<tr><td
white-space='nowrap'><nobr>Ligne SDSL - 150k - 1M <nobr/><br /><td
align='center'>X<td>&nbsp<td>&nbsp<td>&nbsp<tr><td
white-space='nowrap'><nobr>LigneSDSL- 250k - 2M <nobr/><br
/><td>&nbsp<td>&nbsp<td>&nbsp<td>Essayer en dégroupage total (sur ligne
INACTIVE).<br/>Se référer au guide de prise de commande.<tr><td
white-space='nowrap'><nobr>LigneSDSL- 500k - 2M <nobr/><br
/><td>&nbsp<td>&nbsp<td>&nbsp<td>Essayer en dégroupage total (sur ligne
INACTIVE).<br/>Se référer au guide de prise de commande.<tr><td
white-space='nowrap'><nobr>LigneSDSL- 500k <nobr/><br /><td
align='center'>X<td>&nbsp<td>&nbsp<td>&nbsp<tr><td
white-space='nowrap'><nobr>LigneSDSL- 1M <nobr/><br /><td
align='center'>X<td>&nbsp<td>&nbsp<td>&nbsp<tr><td
white-space='nowrap'><nobr>LigneSDSL- 1M - 2M <nobr/><br
/><td>&nbsp<td>&nbsp<td>&nbsp<td>Essayer en dégroupage total (sur ligne
INACTIVE).<br/>Se référer au guide de prise de commande.<tr><td
white-space='nowrap'><nobr>LigneSDSL- 1M - 4M <nobr/><br
/><td>&nbsp<td>&nbsp<td>&nbsp<td>&nbsp<tr><td
white-space='nowrap'><nobr>LigneSDSL- 2M <nobr/><br
/><td>&nbsp<td>&nbsp<td>&nbsp<td>Essayer en dégroupage total (sur ligne
INACTIVE).<br/>Se référer au guide de prise de commande.<tr><td
white-space='nowrap'><nobr>LigneSDSL- 2M - 4M <nobr/><br
/><td>&nbsp<td>&nbsp<td>&nbsp<td>&nbsp<tr><td
white-space='nowrap'><nobr>LigneSDSL- 4M <nobr/><br
/><td>&nbsp<td>&nbsp<td>&nbsp<td>&nbsp<tr><td
white-space='nowrap'><nobr>LigneSDSL- 4M - 9M <nobr/><br
/><td>&nbsp<td>&nbsp<td>&nbsp<td>&nbsp<tr><td
white-space='nowrap'><nobr>LigneSDSL- 9M <nobr/><br
/><td>&nbsp<td>&nbsp<td>&nbsp<td>&nbsp<tr></table><br />
</div>


Ce qui m'interesse,c'est les croix dans le tableau :


Il y a treize produit avec pour chaque produit, deux groupes de champs

J'aimerais sortir des variable du style:

$produit1_P = 1
$produit1_C = "..."

$produit2_P = 1
$produit2_C = "..."

$produit3_P = 1
$produit3_C = "..."

en gros les _P indique le Nbr de paire definit par le X, quand pas de X
= valeur a 0
et les _C sont les info complementaires.

Quelqu'un peut me dire ou m'aider a faire un code qui me sort cela ?


Merci beaucoup d'avance
Mag

2 réponses

Avatar
espie
In article <4983f077$0$15317$,
Mag wrote:
Bonjour,

J'ai besoin d'un peu (meme beaucoup) d'aide car je ne
maitrise pas du tout perl ;=)

J'ai un script qui fait un certain nombre de chose et
entre autre, il interroge un site web et sauvegarde la reponse
au format HTML.

Maintenant, je doit recuperer les infos de cette page web pour
les mettre dans des variables.



Utilise HTML::TreeBuilder, ca te sortira ta page sous un format
structure relativement simple a interroger.

Si je sauvegarde ta page dans /tmp/pouet.html,
le script suivant:

use HTML::TreeBuilder;

my $tree = HTML::TreeBuilder->new_from_file("/tmp/pouet.html");

for my $i ($tree->look_down("_tag", "tr")) {
for my $j ($i->look_down("_tag", "td")) {
print $j->as_text, "|";
}
print "n";
}


Affiche:

Produit|1 P|2 P|4 P|Informationscomplémentaires|
LigneSDSL- 75k - 500k|X| | | |
Ligne SDSL - 150k - 1M |X| | | |
LigneSDSL- 250k - 2M | | | |Essayer en dégroupage total (sur ligne INACTIVE).Se référer au guide de prise de commande.|
LigneSDSL- 500k - 2M | | | |Essayer en dégroupage total (sur ligne INACTIVE).Se référer au guide de prise de commande.|
LigneSDSL- 500k |X| | | |
LigneSDSL- 1M |X| | | |
LigneSDSL- 1M - 2M | | | |Essayer en dégroupage total (sur ligne INACTIVE).Se référer au guide de prise de commande.|
LigneSDSL- 1M - 4M | | | | |
LigneSDSL- 2M | | | |Essayer en dégroupage total (sur ligne INACTIVE).Se référer au guide de prise de commande.|
LigneSDSL- 2M - 4M | | | | |
LigneSDSL- 4M | | | | |
LigneSDSL- 4M - 9M | | | | |
LigneSDSL- 9M | | | | |

A partir de la, tu devrais pouvoir t'en sortir...
Avatar
Mag
Marc Espie a écrit :
In article <4983f077$0$15317$,
Mag wrote:
Bonjour,

J'ai besoin d'un peu (meme beaucoup) d'aide car je ne
maitrise pas du tout perl ;=)

J'ai un script qui fait un certain nombre de chose et
entre autre, il interroge un site web et sauvegarde la reponse
au format HTML.

Maintenant, je doit recuperer les infos de cette page web pour
les mettre dans des variables.



Utilise HTML::TreeBuilder, ca te sortira ta page sous un format
structure relativement simple a interroger.

Si je sauvegarde ta page dans /tmp/pouet.html,
le script suivant:

use HTML::TreeBuilder;

my $tree = HTML::TreeBuilder->new_from_file("/tmp/pouet.html");

for my $i ($tree->look_down("_tag", "tr")) {
for my $j ($i->look_down("_tag", "td")) {
print $j->as_text, "|";
}
print "n";
}


Affiche:

Produit|1 P|2 P|4 P|Informationscomplémentaires|
LigneSDSL- 75k - 500k|X| | | |
Ligne SDSL - 150k - 1M |X| | | |
LigneSDSL- 250k - 2M | | | |Essayer en dégroupage total (sur ligne INACTIVE).Se référer au guide de prise de commande.|
LigneSDSL- 500k - 2M | | | |Essayer en dégroupage total (sur ligne INACTIVE).Se référer au guide de prise de commande.|
LigneSDSL- 500k |X| | | |
LigneSDSL- 1M |X| | | |
LigneSDSL- 1M - 2M | | | |Essayer en dégroupage total (sur ligne INACTIVE).Se référer au guide de prise de commande.|
LigneSDSL- 1M - 4M | | | | |
LigneSDSL- 2M | | | |Essayer en dégroupage total (sur ligne INACTIVE).Se référer au guide de prise de commande.|
LigneSDSL- 2M - 4M | | | | |
LigneSDSL- 4M | | | | |
LigneSDSL- 4M - 9M | | | | |
LigneSDSL- 9M | | | | |

A partir de la, tu devrais pouvoir t'en sortir...







Wahouu merci cela m'aide beaucoup ;=)