- !/usr/bin/perl -w
use LWP::UserAgent;
use HTML::Form;
use LWP::Simple;
sub exploreMessages {
my ($page, $titre, $numeroPage, $lien) = @_;
my $message = "";
my $auteur = "";
$page =~ s/\n//g;
while ( $page =~ m°<tr><td width="50%"><span class="msg_auteur">(.*?)</table></form>°g ) {
$message = $1;
$message =~ m°<input type="hidden" name="pxo" value="(.*?)">°;
$auteur = $1;
$message =~ m°<td colspan="2" class="message_forum">(.*?)</tr>°;
$message = $1;
$message =~ s/é/é/g;
$message =~ s/´/´/g;
$message =~ s/&eagrave;/è/g;
$message =~ s/à/à/g;
$message =~ s/<BR>/ /g;
$message =~ s/\n/ /g;
$message =~ s/\r/ /g;
$message =~ s/ +/ /g;
#Exemple de filtre :
if ($auteur =~ m°bliz+ar°i) {
print "Boulet sptotted : $auteur, $titre, page $numeroPage\n";
print ETAT "Boulet sptotted : $auteur, $titre, page $numeroPage, Lien direct = $lien\n";
}
}
}
sub exploreTopic {
my ($lien, $titre) = @_;
my $resteUnePage = 0;
my $question = HTTP::Request->new(GET=>"$lien");
my $reponse = $userAgent->request($question);
my $page = $reponse->content;
#print "Feuille n°1\n";
exploreMessages($page, $titre, 1, $lien);
my $numeroPage=2;
while ( $page =~ m°<td align="right"><p><a href="http://www.jeuxvideo.com/forums/(.*?)"> Page suivante ° ) {
$lien = "http://www.jeuxvideo.com/forums/$1";
#print "Feuille n°$numeroPage\n";
$numeroPage++;
$question = HTTP::Request->new(GET=>"$lien");
$reponse = $userAgent->request($question);
$page = $reponse->content;
exploreMessages($page, $titre, $numeroPage, $lien);
$resteUnePage = 1;
}
if ($resteUnePage == 1) {
$page =~ m°<a href="http://www.jeuxvideo.com/forums/(.*?)"> Derni°;
$lien = "http://www.jeuxvideo.com/forums/$1";
$question = HTTP::Request->new(GET=>"$lien");
$reponse = $userAgent->request($question);
$page = $reponse->content;
exploreMessages($page, $titre, $numeroPage+1, $lien);
}
}
sub parcoursPages {
my ($adresse,$profondeur) = @_;
my $numeroPage = 1;
while ($profondeur>0) {
print "Exploration de la page $numeroPage\n";
my $question = HTTP::Request->new(GET=>"$adresse");
my $reponse= $userAgent->request($question);
my $page = $reponse->content;
$page =~ s/\n//g;
while ( $page =~ m°<a
href="http://www.jeuxvideo.com/forums/1-9725-(.*?)
</tr>°g ) {
$topic = $1;
$topic =~ s/é/é/g;
$topic =~ s/´/´/g;
$topic =~ s/&eagrave;/è/g;
$topic =~ s/à/à/g;
$topic =~ s/">/\n/g;
$topic =~ s°</a></td><td><p>°\n°g;
$topic =~ s°</a></td><td><p class="topic_mod°°g;
$topic =~ s°</p></td><td><p>°\n°g;
$topic =~ s°</p></td><td><p>°\n°g;
$topic =~ s°</p></td>°\n°g;
$ligne =
"http://www.jeuxvideo.com/forums/1-9725-$topic\n";
my($lien, $titre, $auteur, $posts, $date) = split(/\n/, $ligne);
print "Parcours du topic <$titre> créé par $auteur\n";
exploreTopic("$lien", "$titre");
}
$profondeur--;
$page =~ m°<td align="right"><p><a
href="http://www.jeuxvideo.com/forums/0-9725-(.*?)
"> Page suivante°;
$adresse = "http://www.jeuxvideo.com/forums/0-9725-$1";
$numeroPage++;
}
}
my $adresse =
´http://www.jeuxvideo.com/forums/0-9725-0-1-0-1-0-
0.htm´;
$userAgent = LWP::UserAgent->new(agent=>´VilZilla/1.00 [fr] (X11; I; Linux 4.0.0 i686; Nav)´);
open(ETAT, ">ETAT.TXT");
parcoursPages($adresse, 20);
close(ETAT);