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 :

Récupération d'url depuis page web dans python


Sujet :

Réseau/Web Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycée
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycée

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Récupération d'url depuis page web dans python
    Bonjour .

    Je me suis lancé dans un projet qui me paraissait "simple" , mais je bute sur un obstacle, en effet mon petit programme a pour but de renvoyer les liens d'une page de recherche google, donc j'ai commencé par utiliser le syntaxe de recherche google ("https://www.google.fr/#q=" + élément à chercher) pour avoir une page google, puis je récupère le code source de la page avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    page_google = urllib.request.urlopen(url_google)
    , mais aucun lien n'est dans cette page, je ne connais rien en HTML.
    Une aide de votre part serait la bienvenue.
    Merci de vos futures réponses, Guillaume.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 114
    Points : 129
    Points
    129
    Par défaut
    Bonjour

    La page renvoyée, elle contient quoi ?
    Un message d'erreur ? Ou un message expliquant ce qu'il se passe ?

    De mémoire, ayant fait quelques choses de similaire, j'avais eu une page indiquant que Google ne souhaitait pas qu'on utilise son moteur de recherche comme cela, mais par son API public.

    -> autre approche : bien lire et exploiter les messages d'erreur.

    Cordialement
    Emmanuel

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Lycée
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycée

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour.
    Et bien en fait la page renvoyé ne contient pas tout le code HTML, mais qu'une partie ( comme un clique droit/afficher le code de la page ) .Aucun message d'erreur, nul part... Et pour cet API, elle n'est disponible qu'en 2.X ?
    Merci de cette réponse.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Un exemple très limite pourrait être:
    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 json
    >>> import urllib.request
    >>> import urllib.parse
    >>> # construction de la requête
    >>> URL = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&'
    >>> search_text = 'zzz'
    >>> query = urllib.parse.urlencode({'q': search_text})
    >>> url = URL + query
    >>> # on place le resultat dans un dict
    >>> request = urllib.request.Request(url)
    >>> results = json.loads(urllib.request.urlopen(request).read().decode())
    >>> # et on sort les url
    >>> for d in results['responseData']['results']:
    ...     print(d['url'])
    ...
    https://myspace.com/zzz
    https://myspace.com/zzzoinkz
    http://en.wikipedia.org/wiki/Zzz
    http://www.urbandictionary.com/define.php%3Fterm%3Dzzz
    C'est très limite car çà ne gère pas du tout les erreurs et les encodings (l'exemple avec search_text = 'zzz') mais çà vous montre le principe... Et plutôt que d'aller dépiauter du HTML, çà passe par une interface qui retourne du JSON qu'on sait facilement transformer en dict Python.
    Après, il faut aussi décoder les autres informations retournées dans le JSON car c'est un résultat "partiel" mais quoi que vous fassiez, le plus dur n'est pas Python mais de comprendre l'API google que vous allez utiliser.

    Je ne suis pas sur que çà vous aide mais çà vous permet de voir les difficultés.

    Sinon vous avez des biblio. qui font beaucoup de boulot pour vous genre google-search-python. Là il faut aller à la pêche...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. récupération données depuis page web
    Par Elay dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/01/2008, 07h35
  2. Réponses: 1
    Dernier message: 07/08/2006, 06h08
  3. [Appel URL] appel d'une page web dans 1 Java
    Par c4cf6 dans le forum Applets
    Réponses: 3
    Dernier message: 17/03/2006, 14h13
  4. integrer une page web dans une autre
    Par ma_mat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 08/11/2004, 11h01
  5. Réponses: 2
    Dernier message: 16/07/2004, 09h30

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