salut je suis débutant en perl et je veux lire tous les fichier html à partir d'un repertoire racine
merci.
salut je suis débutant en perl et je veux lire tous les fichier html à partir d'un repertoire racine
merci.
tu peut faire sa de deux façon
soit en utilisant glob
ou encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 pour n'importe qu'elle type de fichier my @html = glob(" chemin repertoire/*"); pour un type de fichier préçis my @html = glob("chemin repertoire/*.htm");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 opendir (DIR, "chemin reperoire") or die ("Impossible d'ouvrir le répertoire"); # bon la on récupère tout les éléments du repertoire my @html = readdir(DIR); # pour ne récupérer que certain type de fichier my @html = grep { /\.html|\.php$/i } readdir(DIR); close(DIR);
ok merci;
voilà de puis le temps que j'ai poser cette question, je n'arrete pas de progresser.
mon problème maintenant est le suivant:
apres avoir réussi à lire tout les fichier HTML ou HTM d'un répertoire; je voulez récupérer le texte qui est dans le fichier Html.
jusqu'au la j'ai un bon résultat en utilisant ce code.
#######################################
# usage : perl htmltotext.pl <rep>
use HTML::FormatText;
use HTML::TreeBuilder;
use Time::HiRes qw(gettimeofday);
my $debut = gettimeofday; # date de debut de programme
#le chemin vers le repertoire
my $dir=$ARGV[0];
#ouvrir le repertoire
opendir(DIR, $dir) or die "je ne peux pas : $!";
my @listeDeFichier= grep {/\.html?$/} (readdir DIR);
#ordonner les fichiers
my @listeOrdonnee = sort(@listeDeFichier);
#fermer le fichier
close(DIR);
#affiche quelques statistiques
print "+--------------------------------------------------+\n";
print "Nom du repértoire : $dir\n";
print "Nombre de fichiers : " . (scalar(@listeOrdonnee))."\n";
print "Noms des fichiers : ---------\n";
#Traitement sur la liste des fichier
foreach my $fichier (@listeOrdonnee) {
print "######################################\n";
print $dir.'/'.$fichier."\n";
my $taille = -s $dir."/".$fichier;
print "$fichier \t $taille octets\n";
$tree = HTML::TreeBuilder->new(); # create TreeBuilder
$tree->parse_file($dir."/".$fichier); # parse file
$formatter = HTML::FormatText->new(); # formatter object
open (R, ">$dir"."/"."$fichier.txt") || die "erreur de création du fichier :$fichier.txt\n";
my $texteTXT = ($formatter->format($tree));
$texteTXT =~ s/<[^>]+>//g;
$texteTXT =~ s/\[IMAGE\]//g;
#$texteTXT =~ s/(\n\s*)+/\n/g;
#$texteTXT =~ s/(--)+(-)?([.©\n]*)+//g;
print R $texteTXT;
close(R) || die "erreur de fermeture du fichier $fichier.txt\n";
}
my $tempsTotal = gettimeofday-$debut;
print "temps d\'execution total: $tempsTotal\n";
dans ce code en gros, j'ai fait apelle au module HTML::FormatText; et HTML::TreeBuilder;
il me reste un seul souci : je ne peux pas récuperer le text écrit dans des tableaux. moi je soupçone le HTML::TreeBuilder; qui ne prends pas en compte les tableau.
merci pour votre aide.
peux tu mettres ton code entre balise code (tu le selectionnes et clique sur #), c'est important pour la lisibilité
Merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager