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 ...)

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>
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
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 ;
  }
}
merci ...