IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Recherche google via script python


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 23
    Points
    23
    Par défaut Recherche google via script python
    Bonjour,

    Je cherche à effectuer des recherches google via un script python qui utilise httplib.

    Mon script fonctionne le seul probleme c'est que google me retourne sans cesse un code 400 bad request... j'ai tester mon script sur d'autre url par exemple mon site perso et la aucun probleme j'obtiens bien au un code de retour de valeur 200 !!

    Je pense que le soucis viens du format de mon url google, pourtant j'ai testé celle ci au travers d'une requete avec wget et cela fonctionne sans soucis....

    je met un bout de code en exemple :
    Préparation de l'url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    adresse = "www.google.fr"
    page = "/"
    parametre = "search?hl=fr&q=%s" % keyWords
    Execution de la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    h = httplib.HTTPConnection(adresse)
    header = {"Accept" : "text/html",
                   "Accept" : "text/plain",
                   "User-Agent" : "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)"}
    h.request(methode,page,parametre,header)
    reponse = h.getresponse()
    Je précise que methode est initialisé à "GET" ...
    Voila si quelqu'un a une petite idée...

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Bonjour,

    le moyen le plus respectueux est d'utiliser les API mise à disposition par Google.
    Un exemple de cette page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import urllib2
    import simplejson
     
    # This example request includes an optional API key which you will need to
    # remove or replace with your own key.
    # Read more about why it's useful to have an API key.
    # The request also includes the userip parameter which provides the end
    # user's IP address. Doing so will help distinguish this legitimate
    # server-side traffic from traffic which doesn't come from an end-user.
    url = ('http://ajax.googleapis.com/ajax/services/search/web'
           '?v=1.0&q=Paris%20Hilton&key=INSERT-YOUR-KEY&userip=USERS-IP-ADDRESS')
     
    request = urllib2.Request(
        url, None, {'Referer': /* Enter the URL of your site here */})
    response = urllib2.urlopen(request)
     
    # Process the JSON string.
    results = simplejson.load(response)
    # now have some fun with the results...
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 23
    Points
    23
    Par défaut
    Ok je te remercie,

    Donc si je comprend bien je ne peu pas balancer des requetes comme sa à la volé il me faut un identifiant que je lui passe en parametre...

    Pourtant apparemment avec urllib ou wget on peu effectuer des requetes comme dans un navigateur classique...

  4. #4
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # This example request includes an optional API key
    C'est pas plus compliqué que ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import urllib2
    import simplejson
     
    url = ('http://ajax.googleapis.com/ajax/services/search/web'
           '?v=1.0&q=rvbp13')
     
    request = urllib2.Request(
        url, None, {'Referer': 'exemple.com'})
    response = urllib2.urlopen(request)
     
    results = simplejson.load(response)
    print results
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 23
    Points
    23
    Par défaut
    Pour info pour ceux que sa interresse je viens de trouver mon erreur et donc la solution par la meme occasion.

    En effet il fallais initialiser les variables sous et forme la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    adresse = "www.google.fr"
    page = "/search?hl=fr&q=%s" % keyWords
    il ne fallais pas séparer le nom de la page et les parametre... j'ai utiliser urlparse pour décoder les url et c'est lui qui ma induit en erreur des le debut...

    je ne sais pas si j'ai été très clair dans mon explication mais n'hésitez pas à me demander je me ferais un plaisir de vous repondre !!

Discussions similaires

  1. Récupération recherche google via VBA
    Par mtaurines dans le forum Internet
    Réponses: 0
    Dernier message: 22/02/2012, 14h30
  2. Implémenter le code d'une méthode C++ via un script python
    Par johnCplusPlus dans le forum Interfaçage autre langage
    Réponses: 6
    Dernier message: 21/07/2009, 11h00
  3. lancer un script shell et recupérer les résultats via script python
    Par GoldenEyes dans le forum Général Python
    Réponses: 2
    Dernier message: 04/09/2008, 18h15
  4. Appel de fonction/script python via PHP
    Par rastalien dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/02/2008, 18h12
  5. [MySQL] Recherche BDD MySQL via script PHP
    Par poitierjohan dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/10/2007, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo