KOMMANDOInternetMatérielsPrestationsNEXTSTEP·OPENSTEPFormationsPartenairesRéférences



[Banniere]


#!/usr/local/bin/perl

use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;

($nom_cherche = $ARGV[0]) =~ s/ /+/g;
$formulaire = "country=france&type=0&cv=0&num=0&nom=$nom_cherche&ville=&dep=&rub=";
$agent = new LWP::UserAgent;
$requete = new HTTP::Request ('POST', 'http://www.annu.com/annu/cgi-bin/www');

for ($dept = 1; $dept <= 95; $dept++)
{
    $formulaire =~ s/dep=[^&]*&/dep=$dept&/;
    $requete->header ('Content-length' => length ($formulaire));
    $requete->content ($formulaire);
    $reponse = $agent->request ($requete);
 
    if ($reponse->is_success)
    {
        $total_reponses += traite_reponse ($reponse->content);
    }
    else
    {
        print STDERR "Echec de la rêquete pour le département $dept\n";
        $debug && print $reponse->error_as_HTML;
    }
}
$total_reponses && print "\n$total_reponses réponse(s) trouvée(s)\n";

sub traite_reponse
{
    my ($reponse) = @_;
    my ($trouves, $element, $coordonnees);
 
    if ($reponse =~ /Nombre de personnes trouv.es &nbsp;: (\d+)/)
    {
        $trouves = ($1 > 10) ? 10 : $1;
 
        $reponse =~ s/<HR>/----/g;
        $reponse =~ s/<[^>]*>//g;
 
        for ($element = 1; $element <= $trouves; $element++)
        {
            if ($reponse =~ /\n$element\n(.*?)\n----\n/s)
            {
                $coordonnees = $1;
                $coordonnees =~ s/\n{2,}/\n/g;
                $coordonnees =~ s/\351/e/g;
                print "$coordonnees";
            }
            else
            {
                die "Problème d'analyse de la réponse\n";
            }
        }
    }
    else
    {
        $trouves = 0;
    }
    return $trouves;
}

[petit logo]

     Chercher sur ce site

Une remarque, une question ou une suggestion ? Merci de nous écrire à info@kommando.com.

KOMMANDO
Siège social : 3, rue Jacques Daguerre · 95370 MONTIGNY lès CORMEILLES
Tél : 33 (0)6 60 60 10 48 · Fax : 33 (0)6 61 60 10 48 · info@kommando.com



KOMMANDOInternetMatérielsPrestationsNEXTSTEP·OPENSTEPFormationsPartenairesRéférences