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

Python Discussion :

Extraire les données selon la méthode du web scraping


Sujet :

Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 3
    Par défaut Extraire les données selon la méthode du web scraping
    Bonjour tout le monde, je suis une étudiante à la faculté des sciences économiques et de gestion de Tunis, et je fais un mastère de recherche en finance. Mon mémoire se porte sur les déterminants du crowdfunding et ses perspectives de développement en Tunisie. En absence de réponse de la part la plateforme tunisienne Cofundy, j'ai besoin pour formuler la base de données de mon sujet, d'extraire les données selon la méthode du web scraping grâce à un programme codé en python et le logiciel scrapy.org. je vous prie svp de m'aider, je n'ai aucune connaissance en informatique. Merci D'avance.

    Ci-joint les URL des projets dont je dois extraire les données
    1. https://www.cofundy.com/index.php?r=...Fdetail&id=254
    2. https://www.cofundy.com/index.php?r=...Fdetail&id=113
    3. https://www.cofundy.com/index.php?r=.../detail&id=257
    4. https://www.cofundy.com/index.php?r=...Fdetail&id=151
    5. https://www.cofundy.com/index.php?r=.../detail&id=465
    6. https://www.cofundy.com/index.php?r=.../detail&id=338
    7. https://www.cofundy.com/index.php?r=.../detail&id=318
    8. https://www.cofundy.com/index.php?r=.../detail&id=330
    9. https://www.cofundy.com/index.php?r=.../detail&id=318
    10. https://www.cofundy.com/index.php?r=.../detail&id=151
    11. https://www.cofundy.com/index.php?r=projet/detail&id=90
    12. https://www.cofundy.com/index.php?r=.../detail&id=296
    13. https://www.cofundy.com/index.php?r=.../detail&id=224
    14. https://www.cofundy.com/index.php?r=.../detail&id=209
    15. https://www.cofundy.com/index.php?r=.../detail&id=258
    16. https://www.cofundy.com/index.php?r=.../detail&id=142
    17. https://www.cofundy.com/index.php?r=.../detail&id=143
    18. https://www.cofundy.com/projects/6fd...lidarite-maroc
    19. https://www.cofundy.com/index.php?r=...Fdetail&id=108
    20. https://www.cofundy.com/projects/565...497e89ca/jwebi
    21. https://www.cofundy.com/index.php?r=...2Fdetail&id=91

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 823
    Billets dans le blog
    1
    Par défaut
    Bonjour

    La majeure partie de tes URL sont invalides. J'en ai toutefois trouvé deux https://www.cofundy.com/projects/565...497e89ca/jwebi et https://www.cofundy.com/projects/6fd...lidarite-maroc mais elles mênent sur une description je ne vois pas, dans ces pages, quelles données tu veux extraire.

    Citation Envoyé par sarra216 Voir le message
    je n'ai aucune connaissance en informatique.
    Ah ben c'est pas gagné alors. Parce que quoi qu'il arrive, "aider" ne veut pas dire "faire le boulot à ta place".
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 3
    Par défaut
    Bonjour,
    le prb qui se pose c'est que je dois extraire les données depuis les URL invalides, car Cofundy cache les projets échoués. je les ai trouvé sur leur page fb officiel au moment de la collecte de fonds. Concernant les URL qui fonctionnent, le début de la collecte n'est pas mentionné, je ne peux donc pas calculer la durée de la compagne de collecte et aussi je dois savoir si un individus à contribuer dans le palier le plus élevé et rien n'est publié. En fait après des recherches j'ai pu extraire certaines données de 8 projets mais je ne suis pas sure quant à la exactitude de certaines variables. C'est la raison pour la quelle j'ai demandé votre aide. J'ai consulté plusieurs ingénieurs en informatique mais aucun n'as pu m'aider.

  4. #4
    Membre expérimenté
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Par défaut
    En gros tu nous demandes de l'aide pour hacker une base de données à laquelle seule la plateforme à accès et qui contiendrait des informations sur les contributeurs . C'est illégal. Tu dois demander l'accord à la plateforme pour avoir accès à la base de données anonymisée. Normal que tu n'aies pas trouver d'aide. Je pense que tu n'en auras pas non plus ici.

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 3
    Par défaut
    Je ne pensais pas que c'étais illégale, les données ont été publié au moment de la collecte, mais une fois la date passé la plateforme change les URL et publie les données souhaité et masque aux internautes les projets échoués. De plus, j'ai trouvé cette méthode dans un mémoire d'un étudiant français https://dumas.ccsd.cnrs.fr/dumas-01092302/document ( page 32). les ingénieurs que j'ai consulté ne sont pas experts dans le langage python personne ne m'as prévenu que c'est illégale. En tout cas merci de m'avoir répondu et informé de cela.

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Il vous faut séparer les taches et les problèmes. Faire du webscrapping pour récupérer des infos sur un site à une url données est une chose, et c'est légale. Faire une liste d'URL toutes valides pour votre projet en est une autre. Que le site donnent accès à des infos et coupe cette accès suite à un évènement (comme l'échec du projet par exemple) alors ca s'en est encore un autre. Et soit le site laisse les infos mais les changent d'adresse (donc là, à vous de trouvez ces adresses, et dans ce cas ce n'est pas que le site coupe l'info, mais il l'archive en changeant l'url), soit le site coupe vraiment l'info et à part leur demander l'autorisation ou l'accès à ces infos effectivement vous n'aurez rien (et tout moyen détourné qui vous donnerais qqch en effet est illégal).

    Après rien ne vous empêche de lancer votre script régulièrement (quotidiennement?) sur les projets disponibles du moment. Comme ca quand un projet ferme, et bien vous l'avez gardez vous en mémoire de votre côté. C'est ce qui semble avoir été fait dans le stage du le lien que vous donné.

  7. #7
    Membre expérimenté
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Par défaut
    Merci à lg_53 qui clarifie mon message.

    Concernant le webscrapping, il faut aussi vérifier les conditions. Par exemple o'reilly accepte la pratique si un délai de 30 secondes est respecté entre deux url testées. Dans certains cas, ne pas rester cette condition peut être considérer comme illégal.

  8. #8
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    Citation Envoyé par sarra216 Voir le message
    Je ne pensais pas que c'étais illégale
    comme indiqué par la suite, ça n'est absolument pas illégal

    en revanche il est toujours de bon ton d'aller lire les conditions générales d'utilisation ("CGU" ou "ToS" en anglais) pour voir s'il n'est pas explicitement précisé que les robots et/ou traitements automatisés sont interdits
    par ailleurs le site peut parfois fournir une API pour accéder facilement à ses données (et cette API imposer un timeout pour éviter de se faire inonder de requêtes)

    en l'occurrence sur CoFundy il n'y a rien qui met en garde contre l'utilisation d'un robot ou le fait de scraper tout ou partie du site

    en analysant rapidement la page discover où sont listés tous les projets, déjà on remarque que des projets il y en a 17, pas un de plus, donc au pire et dans ce cas très précis ça peut éventuellement se récupérer directement à la main, ça prend 5 min max.
    mais en admettant que l'on veuille automatiser tout ça, on se rend compte que le bouton "charger plus de projets" réclame au serveur une URL du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://www.cofundy.com/project/load-more/SUCCEEDED/4/4
    et là ça devient plus simple; les deux derniers numéros dans l'url correspondent respectivement au numéro du projet et au nombre de résultats à renvoyer, ainsi la requête https://www.cofundy.com/project/load-more/SUCCEEDED/8/4 va récupérer les 4 prochains projets (la deuxième page), et si on l'on réclame directement https://www.cofundy.com/project/load-more/SUCCEEDED/0/100 on récupère d'un seul coup les 100 premiers projets, ce qui ici est largement suffisant

    ce que l'on récupère (donc avec curl, wget ou autre script python) c'est du HTML, dans lequel on remarque une structure récurrente du style :
    Code HTML : 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
    20
    21
    22
    23
    24
    25
    26
    <div class="col-sm-3 margin-bottom30">
       <div class="project-item small-project">
          <div class="project-thumbnail small-thumbnail">
             <a href='/projects/7694ac5d-b900-4e9d-a6b4-c382541f2a14/le-lemon-tour--se-deplacer-autrement-pour-visiter-differemment--'>
             <img src="https://api.particeep.com/document/b5f5490b-7b58-4f71-ac26-e9fe40419233" alt="Le Lemon tour, se déplacer autrement pour visiter différemment !">
             <div class="project-image-hover">
                <div class=project-image-hover_content>
                   <span>Voir le projet</span>
                </div>
             </div>
             </a>
          </div>
       <div class="project-content">
          <h5 class="project-title"><a href='/projects/7694ac5d-b900-4e9d-a6b4-c382541f2a14/le-lemon-tour--se-deplacer-autrement-pour-visiter-differemment--'>Le Lemon tour, se déplacer autrement pour visiter différemment !</a></h5>
          <p class="project-description">Participez au Lemon Tour, visite de découverte à vélo du patrimoine tunisien d&#x27;hier et d&#x27;aujourd&#x27;hui!</p>
       </div>
       <div class="project-footer">
          <div class="project-infos">
             <!-- If is RUNNING -->
             <div class="text-center">
                <p class="nomargin-bottom"><b>Projet financé avec succès</b></p>
                <p>Montant levé : 6*085 €</p>
             </div>
          </div>
       </div>
    </div>

    reste à isoler dans ce code HTML les données qui nous intéressent, le module BeautifulSoup est un candidat de choix, un bref exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> [i.text for i in soup.find_all(attrs={'class': 'project-title'})]
    ['Le Lemon tour, se déplacer autrement pour visiter différemment !', 'Festival des Arts Urbains "JAM Session #4"', 'Cimetière pour les migrants', 'Exclusive Tunisia', 'Maternelle Afoulki', "Sourires d'enfants", 'Codesol Artisanat Kabyle', 'C.A.T.S', 'Darna', 'La révolution en laine', 'Espoir de vacances', 'Dembe', 'Tous pour la Rachidia', 'Ecole Chafaï', 'Les roses de la thyroïde', 'Solidarité Maroc', 'Jwebi']

Discussions similaires

  1. Réponses: 22
    Dernier message: 11/04/2014, 02h48
  2. extraire les données d'une page web
    Par mour92 dans le forum VBScript
    Réponses: 7
    Dernier message: 10/04/2012, 16h42
  3. [XL-2007] extraire des données selon leur nature et les réintegrer classees
    Par tchock_nenette dans le forum Excel
    Réponses: 9
    Dernier message: 08/04/2012, 14h06
  4. extraire les données d'un site web par HTMLPARSER
    Par sihammaster dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/04/2010, 16h30
  5. [RegEx] extraire les liens hypertexte d'une page web
    Par lalama dans le forum Langage
    Réponses: 1
    Dernier message: 22/03/2006, 10h43

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