1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
#############
### DEBUT ###
#############
#!/usr/local/bin/perl
use POSIX;
use CGI qw/:all /;
package HTMLStrip;
use base "HTML::Parser";
my $texte;
my $date;
my $titre_doc;
my $i = 0;
my @bloc;
my @bloc2;
my @bloc3;
my @blocfinal;
my @table; # table des fichiers
my $nmtable = 0; # n° du fichier HTML dans la table des fichiers
@table = glob('*.html'); # recup. la liste des fichiers HTML
$mode = '>';
$nmfichout = "temp.txt";
$nmfichout2 = "temp2.txt";
$nmfichout4 = "final.txt";
# DEBUT DE LA BOUCLE
while ($i < 10)
{
# TRAITEMENT
open (FICH, @table[$nmtable]) || die ("pas de fichier html dans le répertoire\n");
while (<FICH>)
{
if (/<h3>(.*?)<\/h3>/) # recup. date
{
#print "$1\n";
$date = "$1";
}
if (/<p class="reg">(.*?)<\/p>/) # recup. titre
{
#print "$1\n";
$titre_doc = "$1";
}
if (m{<p +class="tenor"[^>]*>}..m{</p>}) # recup. texte
{
$texte = $_;
push @bloc, $texte;
}
}
#print "$date\n";
#print "$titre\n";
#print "@bloc";
open(TEMP1, $mode, $nmfichout) or die("open: $!");
print TEMP1 @bloc;
close (TEMP1);
#######################
# TRAITEMENT DU TEXTE #
#######################
# 2 - RETIRE LES BALISES
open (FICH2, 'temp.txt') || die ("pas de fichier 1\n");
sub text
{
my ($self, $text) = @_;
print $text;
push @bloc2, $text;
}
my $p = new HTMLStrip;
while (<FICH2>)
{
$p->parse($_);
}
$p->eof;
open(TEMP2, $mode, $nmfichout2) or die("open: $!");
print TEMP2 @bloc2;
close (TEMP2);
close (FICH2);
# 2 - SUPPRIME LES SAUTS DE LIGNE
open (FICH3, 'temp2.txt') || die ("pas de fichier 1\n"); # fichier à traiter
while ($ligne = <FICH3>)
{
$ligne =~ s/\n//gs;
#$ligne =~ s/(^[ \t]+)|([ \t]+$)//gm;
push @bloc3, $ligne;
}
# FERMETURE DES FICHIERS 0 et 3
close (FICH3);
close (FICH);
# PLACER DANS LE BLOC LES VARIABLES RECUPEREES
@blocfinal = $date.'#'.$titre_doc.'#'."@bloc3\n";
# RECOMMENCE LA BOUCLE
unlink ( "temp.txt" );
unlink ( "temp2.txt" );
#sleep(1);
$nmtable++;
$i++;
}
##############################################
# ECRITURE FINAL DANS LE FICHIER 'final.txt' #
##############################################
open(OUT, $mode, $nmfichout4) or die("open: $!");
print OUT @blocfinal;
close (OUT); |
Partager