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 :

Web parsing et web scraping


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 30
    Par défaut Web parsing et web scraping
    Bonjour,


    Je voudrais à titre d’exercice automatiser une action de récupération d’informations sur le web :

    1 - A partir d’un site comme société.com : le nom et la fonction des dirigeants

    http://www.societe.com/cgi-bin/search?champs=renault

    http://www.societe.com/societe/renault-441639465.html

    La réponse c’est Président : M. Carlos GHOSN BICHARA

    Pb : la bonne société n’est accessible que via le lien2 et souvent il n’y pas qu’une seule réponse avec le lien1


    2 A partir de google et la fonction « email **@renault. » la structure la plus vraisemblable des mails

    ex nom.prénom@renault.com



    J’ai déjà regardé quelques tutoriels sur Python notamment mais 2 points me semblent bloquants a priori
    Action 1 : la structure cascadée des liens et le choix à faire pour passer du lien1 au lien2
    Action 2 : la politique de google (la question des headers en particulier)

    Qu’en pensez-vous ? L’une des 2 actions au moins est-elle réalisable ? Un autre langage est-il plus adapté ? Pensez-vous que cela soit accessible à un non programmeur ?


    Cordialement,

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Le bon lien est
    http://www.societe.com/societe/renault-441639465.html

    Il n'y a aucune raison d'utiliser cgi-bin.

    Et puisque tu as obtenu ce que tu demandais (c-à-d M. Carlos GHOSN BICHARA) quelle est ta question ?

  3. #3
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 30
    Par défaut
    Bonjour,

    Si tu fais societe.com, puis Renault tu verras pourquoi j'ai dû mettre 2 liens.

    Mon post, c'est si je veux en traiter plusieurs ;-).

    Cordialement,

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Il faudra donc que tu parse les pages en cascade.

    Pour extraire des données de pages web il existe BeautifulSoup
    http://www.crummy.com/software/BeautifulSoup/bs4/doc/

    Mais tu dois évidement savoir ce que tu cherches à l'intérieur de chaque page.

  5. #5
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 30
    Par défaut
    Bonjour,

    Merci pour ta réponse.

    Est-ce qu'il vaut mieux utiliser pour ceci python 2.7 ou 3.4 ?


    J'ai installé bs4, mais je n'arrive pas à installer lxml qui demande des librairies
    ** make sure the development packages of libxml2 and libxslt are installed **
    que je trouve mais n'arrive pas à installer ?
    Est-ce que lxml est bien nécessaire, si oui comment installer les autres packages?

    Question subsidiaire : je suis sous W7, est-ce que ce serait plus simple en Linux Live clé USB (si c'est faisable facilement de stocker les résultats sur la clé ou le DD) ?

    Cordialement,

  6. #6
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 30
    Par défaut
    Bonjour,

    1 Pour récupérer les infos dirigeants il m'a semblé que c'était dans un paragraphe div "synthese", mais il y a des instructions "span" qui je pense tronquent l'acquisition.

    # -*-coding:Latin-1 -*
    import os
    from urllib2 import urlopen
    from bs4 import BeautifulSoup

    parag = ""

    lien1 = urlopen('http://www.societe.com/societe/renault-441639465.html').read()

    soup1 = BeautifulSoup(lien1, 'html.parser')
    parag = soup1.find_all("div",{"id":"synthese"})

    print soup1

    print "-------------------------------"

    print parag

    os.system("pause")

    Qu'en pensez-vous ?


    2 Comment faire facilement un parsing d'une requête google ?

    import os
    import urllib
    import mechanize
    from bs4 import BeautifulSoup

    br = mechanize.Browser()

    br.addheaders= [('User-agent'), ('Mozilla/5.0')]
    br.set_handle_robots(False)

    html = br.open('http://www.google.com/search?python')

    html2 = html.read().lower()

    os.system("pause")

    print html2

    os.system("pause")

    Ce code ne marche pas. Faut-il limiter les nombre de résultats de la recherche (exemple 50) ?


    Cordialement,

Discussions similaires

  1. HTML parsing & page web ajax
    Par jacquesprogram dans le forum C#
    Réponses: 0
    Dernier message: 12/11/2015, 16h05
  2. Probleme parsing site web
    Par dumbl dans le forum Général Java
    Réponses: 2
    Dernier message: 16/01/2014, 22h57
  3. web service et web proxy
    Par vicros dans le forum Services Web
    Réponses: 5
    Dernier message: 27/10/2008, 15h18
  4. Administration serveur web par interface web
    Par souk dans le forum Réseau
    Réponses: 1
    Dernier message: 16/05/2006, 12h43
  5. web application index ? web site index ?
    Par santana2006 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 09/05/2006, 21h53

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