Je suis politiquement content puisqu'il marche, mais informatiquement dubitatif puisqu'il me bouffe plus de 40 mo au bout d'une heure d'utilisation.
De bonne âmes pourraient-elles m'expliquer pourquoi (pour apprendre aux lecteurs ignorants) et proposer des solutions ?
Merci :)
Voici le code :
#!/usr/bin/perl
use WWW::Mechanize;
use strict;
use diagnostics;
use warnings;
my @url_list =
(
'http://www.google.fr/search?num=100&hl=fr&client=fir(...)
'http://www.google.fr/search?num=100&hl=fr&client=fir(...)
'http://www.google.fr/search?num=100&hl=fr&client=fir(...)
'http://www.google.fr/search?num=100&hl=fr&client=fir(...)
'http://www.google.fr/search?num=100&hl=fr&client=fir(...)
'http://www.google.fr/search?num=100&hl=fr&client=fir(...)
'http://www.google.fr/search?num=100&hl=fr&client=fir(...)
);
my $mech = WWW::Mechanize->new( autocheck => 1 );
for (my $i=0 ; $i< 512 ; $i++)
{
foreach my $url_google (@url_list) {
$mech->get( $url_google );
sleep (rand(32));
my $htmltext = $mech->content;
if ( $htmltext =~ /www\.u\-m\-p\.org\/site\/soutien_projet_2007/ )
{
my @txt = grep (/u\-m\-p\.org/,split(/\s|href=/,$htmltext));
foreach my $t (@txt){
if ($t =~ /soutien_projet_2007/ ) {
# On l'a trouvé !!
my $good_url = 'http://www.google.fr'.$t;
print $good_url,"\n";
$mech->get($good_url);
if ($mech->content =~ /Mouvement\sPopulaire/) { # on est bien tombé sur la bonne page
print '1 Hit effectué',"\n";
}
}
}
}
}
}
# On pourrait avoir ton code dans une version facilement recopiable?
Posté par JoeltheLion (site web personnel) . Évalué à 3.
[^] # Re: On pourrait avoir ton code dans une version facilement recopiable?
Posté par Ontologia (site web personnel) . Évalué à 2.
tu lui fait un chmod + x
et ./sarko.pl le lancera
Veille à ce que WWW:Mechanize soit installé
urpmi --fuzzy Mechanize chez mdk
apt-get install www-mechanize chez debian
Voilà, c'est pas compliqué du tout :-)
Sous windows, c'est plus compliqué : il faut installer ActivePerl, ensuite télécharger le WWW:Mechanize dans le Cpan, et le mettre dans le répertoire /lib de ActivePerl
ensuite ça marche.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: On pourrait avoir ton code dans une version facilement recopiable?
Posté par JoeltheLion (site web personnel) . Évalué à 2.
[^] # Re: On pourrait avoir ton code dans une version facilement recopiable?
Posté par Ontologia (site web personnel) . Évalué à 3.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
# WWW::Mechanize
Posté par Florent Bayle (site web personnel) . Évalué à 2.
# Compilable ?
Posté par Ontologia (site web personnel) . Évalué à 1.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
# POE & patch pour le beugue
Posté par Mouns (site web personnel) . Évalué à 3.
http://poe.perl.org/ pour le site. normalement, c'est disponible dans toutes les distrib.
sinon pour ton bug, c logique ce qui t'arrive.
WWW::Mechanize peut gerer des ensembles d'URL. donc ton bug est la :
si par hasard, tu ne vois pas pourquoi ... je te donne la reponse ... tu fais un $mech->get( $url_google ); ... et donc tu dois garder les anciennes sessions et tu ajoutes une nouvelle.
je suis sur que vu que ton appli n'est pas time-critical , que tu peux faire un truc du genre :
pour la doc :
http://search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize.(...)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.