use locale; use strict; use Encode; use URI::URL; use LWP::Simple; use XML::Simple; if ( $#ARGV != 0 ){ die "Usage : ", $0, " requete\n";} my $requete = encode("utf8", $ARGV[0]); # NOTE : insérez ci-dessous l'identifiant que vous avez déclaré # auprès de Yahoo Web Search Services lors de votre inscription. # Reportez-vous au site http://developper.yahoo.com/ my $identifiant_Yahoo = "xxx"; my $url_yahoo = url( "http://api.search.yahoo.com/WebSearchService/V1/webSearch"); $url_yahoo -> query_form ( appid => $identifiant_Yahoo, #identifiant query => $requete, #requête region => "fr", #serveur Yahoo type => "phrase", #type de requête results => 20, #nombre de documents (max 100) start => 1, #numéro du premier document format => "html", #format des documents adult_ok => 1, #contrôle parental similar_ok=> 0, #maintien des docs similaires language => "fr", #limitation à une langue country => "fr", #limitation à une zone output => "xml" #format de la réponse ); my $reponse_yahoo = get( $url_yahoo ); if ( defined( $reponse_yahoo ) ){ my $arbre_XML = XMLin($reponse_yahoo, ForceArray =>["Result"]); my $nb_docs = $arbre_XML -> {"totalResultsAvailable"}; print "TOTAL : ", $nb_docs,"\n"; if ( defined ( $arbre_XML->{"Result"} ) ) { my @resultats = @{$arbre_XML->{"Result"}}; foreach my $document (@resultats){ print "---\n"; my $titre = normalise_latin1( $document->{"Title"} ); print "TITRE : ", $titre, "\n"; my $URL = $document->{"Url"}; print "URL : ",$URL,"\n"; my $desc = normalise_latin1( $document->{"Summary"} ); print "DESCRIPTION : ",$desc,"\n"; } } } else { die "Problème de la part de Yahoo !\n"; } sub normalise_latin1 { my $chaine = shift @_; $chaine =~ s/[\x{2018}\x{2019}]/\'/g; $chaine =~ s/[\x{201C}\x{201D}]/\"/g; $chaine =~ s/[\x{2013}\x{2014}]/-/g; $chaine =~ s/\x{2026}/.../g; $chaine =~ s/\x{0152}/OE/g; $chaine =~ s/\x{0153}/oe/g; $chaine =~ s/[^\x{0000}-\x{00FF}]//g; return $chaine; }