Je dois analyser 5000 fichiers - qui semblent assez identiques. J'aime utiliser HTML::TokeParser::Simple et DBI pour effectuer le travail d'analyse et stocker les résultats. J'ai peu d'expérience avec HTML::TokeParser::Simple
mais cette tâche dépasse ma tête. Note: j'ai également jeté un coup d'oeil aux idées - cela semble être également une manière appropriée. Mais pour le moment j'ai des problèmes pour obtenir les expressions xpath correspodantes: J'ai essayé de déterminer les expressions xpath correspondantes qui doivent être remplies dans le programme Perl.Comment puis-je extraire le contenu d'une table spécifique à partir d'une source HTML en utilisant Perl?
C'est ce que j'ai en ce moment:
use strict;
use HTML::TreeBuilder::XPath;
my $tree = HTML::TreeBuilder::XPath->new;
#use real file name here
open(my $fh, "<", "file.html") or die $!;
$tree->parse_file($fh);
my ($name) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($type) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($adress) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($adress_two) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($telephone) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($fax) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($internet) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($officer) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($employees) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($offices) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($worker) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($country) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
my ($the_council)= $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
print $name->as_text;
print $type->as_text;
print $adress->as_text;
print $adress_two->as_text;
print $telephone->as_text;
print $fax->as_text;
print $internet->as_text;
print $officer->as_text;
print $employees->as_text;
print $offices->as_text;
print $worker->as_text;
print $country->as_text;
print $the_council->as_text;
est ce bien? Note - Je voudrais stocker ceci dans une base de données.
BTW: Voir un des exemples les sites:
dans le bloc gris ombré vous voyez les informations recherchées: 17 lignes qui sont recherchés. Note - j'ai 5000 fichiers HTML différents - qui sont tous structurés de la même manière!
Cela signifie que je serais heureux d'avoir un modèle qui peut être exécuté avec HTML :: TokeParser :: Simple et DBI. Puis-je utiliser le code mentionné ci-dessus ... ou dois-je le changer.
L'amour pour avoir de vos nouvelles! Ce serait génial!!
FYI: J'ai essayé de modifier votre question, mais je ne comprends pas le titre. S'il vous plaît, essayez de trouver quelque chose de descriptif. –
Voir aussi http://stackoverflow.com/q/3946874/100754 –