Parser html avec perl
fedo
-
fedodido -
fedodido -
Bonjour,
mon probleme consiste à convertir une page html en fichier texte pour pouvoir recuperer le texte de cette page.
jusqu'a mnt j'arrive a convertir cette page en fichier xml ke j'enregistre sous format ".txt",
et je recupere des les lignes voila le script que j'utilise:
# file: htmlToXml.pl
use chilkat;
# Perl script to convert HTML files to well-formed XML
$htmlConv = new chilkat::CkHtmlToXml();
$success = $htmlConv->UnlockComponent("anything for 30-day trial");
if (! $success) {
print "component is locked!\n";
exit;
}
$htmlConv->ConvertFile("test.html","test1.txt");
$i=0;
open (F, "test1.txt") || die "Problème pour ouvrir";
while (<F>) {
if($_ =~ /<text>(.+)<\/text>*/)
{
print "$1 \n";
}
}
close F;
cependant je n'arrive pas à recuperer les paragraphe je pense ke parske dans mon script je precise ke la ligne à afficher doit commencer par la balise <text> .
est ce ke kelk un peut m aider je suis vraiment bloqué,merci d'avance
mon probleme consiste à convertir une page html en fichier texte pour pouvoir recuperer le texte de cette page.
jusqu'a mnt j'arrive a convertir cette page en fichier xml ke j'enregistre sous format ".txt",
et je recupere des les lignes voila le script que j'utilise:
# file: htmlToXml.pl
use chilkat;
# Perl script to convert HTML files to well-formed XML
$htmlConv = new chilkat::CkHtmlToXml();
$success = $htmlConv->UnlockComponent("anything for 30-day trial");
if (! $success) {
print "component is locked!\n";
exit;
}
$htmlConv->ConvertFile("test.html","test1.txt");
$i=0;
open (F, "test1.txt") || die "Problème pour ouvrir";
while (<F>) {
if($_ =~ /<text>(.+)<\/text>*/)
{
print "$1 \n";
}
}
close F;
cependant je n'arrive pas à recuperer les paragraphe je pense ke parske dans mon script je precise ke la ligne à afficher doit commencer par la balise <text> .
est ce ke kelk un peut m aider je suis vraiment bloqué,merci d'avance
A voir également:
- Parser html avec perl
- Editeur html - Télécharger - HTML
- Msxml 4.0 sp3 parser - Forum Logiciels
- Espace en html ✓ - Forum HTML
- [**] Balise pour un espace vide en hml. Merci ✓ - Forum Webmastering
- Html download - Télécharger - HTML
2 réponses
Salut,
Si la méthode n'importe alors tu peux utiliser le programme html2text
Sinon pour parser html tu peux utiliser HTML::PARSER au lieu de passer par XML.
Si la méthode n'importe alors tu peux utiliser le programme html2text
Sinon pour parser html tu peux utiliser HTML::PARSER au lieu de passer par XML.
j ai pris des scripts de html::parser mais ça marche je ne sais pas comment ça fonctionne ex:
#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use HTML::Parser;
use HTML::Form;
my $page = get( "lien");
# création de mon parser
my $parser = HTML::Parser->new();
# définition des mes evenements
$parser->handler( text => \&text, "text" );
$parser->handler( start => \&start, "tagname,attr" );
$parser->handler( end => \&end, "tagname" );
$parser->parse($page);
print &get_data();
parser->eof;
{
my $in;
my @data;
sub start {
my ($tag, $attr) = @_;
$in++
if $tag eq 'div'
and exists $attr->{id}
and $attr->{id} eq 'profilename';
}
sub end {
my ($tag) = @_;
$in-- if ($tag eq 'div' and $in='1');
}
sub text {
my ($text) = @_;
push @data, $text if ($in );
}
sub get_data {
#print "in : ".$in;
return @data;
}
}
exit;
mais ça ne me donne rien