Analyser une page HTML en perl pour recuperer des variables ?

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
espie
Le #18541541
In article 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.



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...
Mag
Le #18543171
Marc Espie a écrit :
In article 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.



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 ;=)
Publicité
Poster une réponse
Anonyme