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
|
use strict;
use warnings;
use AnyEvent;
use AnyEvent::HTTP;
open( FIC, "url.txt");
my @urls = <FIC>;
close (FIC);
open( FIC2, ">result.txt")|| die("Probleme ouverture Fichier en entrée !");
print (FIC2 "Nombre totales d'urls \$#urls : $#urls\n");
my $cv = AnyEvent->condvar; #initialisation anyevent
my $GenCount = 1;
my $count = 0; #initialisation compteur anti goulet d'étranglement
my $max = 50;
for (1 .. $max) {
send_url();
}
print (FIC2 "Before the event-loop\n");
print "Before the event-loop\n";
$cv->recv;
print (FIC2 "Finish\n");
print "Finish\n";
close (FIC2);
###########################Fonction########################################
sub send_url {
return if $count >= $max;
my $url = shift @urls;
return if not $url;
chomp $url;
$count++;
print (FIC2 "Start ($count) $url\n");
print "Start ($count) $url\n";
$cv->begin;
#http_get $url, sub {
http_request GET => $url, sub {
my ($body, $hdr) = @_;
#print Dumper @_;
#print "$body\n";
print (FIC2 "$count - $hdr->{URL}\n");
print "$hdr->{URL}\n";
my $rc=$hdr->{Status};
print "Code retour : $rc\n";
if ($body =~ /appliok|appliko/i ) { print "Pattern : $&\n"; print (FIC2 "Pattern : $&\n");} else {print "Pattern : NULL\n"; print (FIC2 "Pattern : NULL\n");}
if ($body =~ /(serveur : )(\w+)/i ) { print "Serveur : $2\n"; print (FIC2 "Serveur : $2\n");} else {print "Serveur : NULL\n"; print (FIC2 "Serveur : NULL\n");}
#print "$hdr->{date}\n";
#print "$hdr->{Reason}\n";
#print "$url received, Size: Status $html\n";
print (FIC2 "#############$GenCount##############\n");
print "#############$GenCount##############\n";
$cv->end;
$count--;
$GenCount ++;
send_url();
};
return 1;
}; |
Partager