Bonjour ,
J'essaie de parser un fichier HTML , pour y extraire des infos : Problème je ne sais comment m'y prendre car mes connaissances étant limité sur du HTML ,Perl , ....
Puisque j'apprends également du perl , alors j'ai pensé que les Regex , pourrait m'aider .
Ce que je veux faire exactement c'est trouver une expression réguliere qui me permet de 'matcher' les lignes d'un tableau , et ensuite pouvoir extraire les infos contenu dans les colonnes .
Voici un exemple du code HTML (correspondant à une ligne de tabeau)
(juste préciser que j'ai une cinquantaine de ligne dans ce genre ...)
une expression régulière pourrait etre celle ci : le problème c'est qu'elle correspond à plusieurs lignes dans le fichier HTML , alors je cherche une autre solution.. et aussi comment je peux récuperer les données dans les colonnes de cette ligne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <tr> <td>1</td> <td> <a href="#objdef-id3206X4432">mx1.messagelabs.com</a><br> </td> <td> <a href="#objdef-id1856X4432">MX_servers</a><br> </td> <td>smtp<br> </td> <td>Accept</td> <td><br> </td> </tr>
[merci ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #!/usr/bin/perl use strict; use warnings; # Sous-routine permettant d'entrée le fichier en CLI sub obtient_ligne{ #demande , lit , "chompe" et renvoie une ligne d'entrée print $_[0]; chomp(my $ligne = <STDIN>); $ligne ; } my $fichierHTML = &obtient_ligne (" votre fichier HTML ?"); open IN ,$fichierHTML or die "Impossible d'ouvrir '$fichierHTML ' en entrée : $!"; while (<>) { if (/<tr><td>[0-9]<\/td><td>[a_zA-Z0-9_]<br><\/td><td>[a_zA-Z0-9_]<br><\/td><td><a href=\"#objdef-id3C20EEB5\">[a_zA-Z0-9_]<\/a><br><\/td><td>Accept¦Deny<\/td><td><br><\/td>[a_zA-Z0-9_]<\/tr>/) { print ; } }
Partager