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

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2018
    Messages : 8
    Points : 7
    Points
    7

    Par défaut Scrapping - Commentaires - Python- BeautifulSoup

    Salut à tous,

    Dans le cadre de mon mémoire je dois récupérer la base de données des commentaires (anonymes qui évaluent des articles scientifiques) d'un site internet. Je suis nouveau sur Python et j'utilise urllib2 et BeatifulSoup afin donc de scrapper les commentaires que je trouve dans une balise HTML <div>. Jusqu'ici pas de problème.

    Le problème est que je récupére les commentaires d'une manière pas du tout structurés comme sur le site (avec le pseudo du commentateur, la date...) mais je récupére tout les commentaires dans une seule liste, tous les commentaires avec leur métadonnées sont alignés. De plus comme certains commentaires contiennent des images je récupère des données qui ressemble à cela : "id&quot;:131952,&quot;updatable_type&quot;:&quot;comments&quot;,&quot;created_at&quot;:&quot;2018-02-22 06:45:39&quot;,&quot;updated_at&quot;:&quot;2018-02-22 06:45:39&quot;}]},{&quot;id&quot;:132125,&quot;inner_id&quot;:5,&quot;html&quot;:&quot;&lt;p&gt;The correction removed published figures and replaced them with new data. Above flagged concerns were not addressed at all.\nSci-Hub allows you to see the accepted author's manuscript. I modified the corrigenda panels to insert corresponding accepted figures. You can see that Fig 1A used to be different from what was then published, and now removed and replaced by correction. &lt;a href=\&quot;https:\/\/pubpeer.com\/storage\/image-1519723825915.PNG\&quot; target=\&quot;_self\&quot;&gt;&lt;img"

    Voilà, j'espère que j'ai plutôt bien expliqué mon problème afin que vous m'éclairiez sur la voie à suivre afin de récupérer des données que je puisse structurer ensuite dans des listes et des dictionnaires. A la fin j'aimerais obtenir un dataframe avec les commentaires et leurs métadonnées.

    Merci à tous



    Je vous remercie

  2. #2
    Membre éprouvé

    Homme Profil pro
    ValueError
    Inscrit en
    avril 2016
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ValueError

    Informations forums :
    Inscription : avril 2016
    Messages : 691
    Points : 1 020
    Points
    1 020
    Billets dans le blog
    1

    Par défaut

    Salut.

    Déjà il faudait montrer un bloc de commentaire complet et nous dire ce que tu souhaites récupérer dans un bloc.

    Si je transforme les entités et supprime les \, j'obtiens :

    '"id":131952,"updatable_type":"comments","created_at":"2018-02-22 06:45:39","updated_at":"2018-02-22 06:45:39"}]},{"id":132125,"inner_id":5,"html":"<p>The correction removed published figures and replaced them with new data. Above flagged concerns were not addressed at all.\nSci-Hub allows you to see the accepted author\'s manuscript. I modified the corrigenda panels to insert corresponding accepted figures. You can see that Fig 1A used to be different from what was then published, and now removed and replaced by correction. <a href="https://pubpeer.com/storage/image-1519723825915.PNG" target="_self"><img"'
    Donc à partir de ça, difficile d'extraire quoique ce soit, puisque le paragraphe n'est pas complet.
    Le temps ronge l'amour comme l'acide.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2018
    Messages : 8
    Points : 7
    Points
    7

    Par défaut

    Merci pour votre réponse. Comment avez-vous fait pour transformer les entités HTML avec Python?? Ca m'aiderait beaucoup pour mettre de l'ordre dans tout ca

    Sinon, voilà à quoi ressemble un bloc commentaire j'aimerais récupérer toutes les informations (pseudo, date et commentaires)
    Nom : Capture d’écran 2018-10-19 à 15.45.31.png
Affichages : 73
Taille : 82,2 Ko

    Merci

  4. #4
    Membre éprouvé

    Homme Profil pro
    ValueError
    Inscrit en
    avril 2016
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ValueError

    Informations forums :
    Inscription : avril 2016
    Messages : 691
    Points : 1 020
    Points
    1 020
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par jo_dlbn Voir le message
    Comment avez-vous fait pour transformer les entités HTML avec Python?? Ca m'aiderait beaucoup pour mettre de l'ordre dans tout ca
    J'ai fait ça à l'arrache avec le dictionnaire html5 de html.entities.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> from html.entities import html5 as entites
    >>> html = '&lt;p&gt;paragraphe&lt;/p&gt;'
    >>> for c, v in entites.items() :
    ...     try :
    ...         html = html.replace('&'+c, v)
    ...     except:
    ...         continue
    ... 
    >>> html
    '<p>paragraphe</p>'
    Tu peux aussi regarder du côté de html.parser.
    Mais je suppose qu"avec beautifulsoup, il doit y avoir moyen de récupérer le contenu désiré.
    Le temps ronge l'amour comme l'acide.

  5. #5
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    14 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 14 073
    Points : 23 720
    Points
    23 720

    Par défaut

    Citation Envoyé par bistouille Voir le message
    J'ai fait ça à l'arrache avec le dictionnaire html5 de html.entities.
    Plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> s = '&lt;p&gt;paragraphe&lt;/p&gt;'
    >>> import html
    >>> html.unescape(s)
    '<p>paragraphe</p>'
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre éprouvé

    Homme Profil pro
    ValueError
    Inscrit en
    avril 2016
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ValueError

    Informations forums :
    Inscription : avril 2016
    Messages : 691
    Points : 1 020
    Points
    1 020
    Billets dans le blog
    1

    Par défaut

    En effet
    Le temps ronge l'amour comme l'acide.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2018
    Messages : 8
    Points : 7
    Points
    7

    Par défaut

    Merci pour le tuyau!!

    Pour revenir a mon problème, j'ai mes blocs de commentaire en tant qu'élément (chaine de caractère) dans une liste et j'aimerais recupéré des informations tel que "id":, "inner_id":, "created_at": "user":...
    Voilà a quoi ressemble un bloc de commentaire (un élément de ma liste ) :liste_V1[1] me donne :

    id":125965,"inner_id":2,"html":"<p>\"Elsewhere on the internet\" not being a proper reference -one very similar to \"data not shown\"-, is this comment really useful or is it just one instance of \"author bashing\"? Feeling uncomfortable...<\/p>","markdown":"\"Elsewhere on the internet\" not being a proper reference -one very similar to \"data not shown\"-, is this comment really useful or is it just one instance of \"author bashing\"? Feeling uncomfortable...","visible":true,"user_alias":null,"type":"pubpeer","link":null,"updatable":false,"editable":false,"is_from_author":false,"important":false,"is_accepted":true,"is_disabled":false,"created_at":"2017-09-25 21:25:11","accepted_at":"2017-09-26 07:44:05","updated_at":"2017-09-26 07:44:05","deleted_at":null,"user":{"id":25410,"username":"acer ibericum","first_name":"acer","last_name":"ibericum","verified":0,"active":1,"is_admin":false,"suspend":0,"author_id":null,"reported":0,"rejected":0,"disabled":1,"accepted":2,"created_at":"2017-08-21 12:27:43","updated_at":"2018-04-17 19:22:07","email":null,"name":"acer ibericum","photo_url":"https:\/\/www.gravatar.com\/avatar\/d41d8cd98f00b204e9800998ecf8427e.jpg?s=200&d=mm","uses_two_factor_auth":false,"two_factor_reset_code":null,"current_team_id":null,"stripe_id":null,"current_billing_plan":null,"billing_state":null,"vat_id":null,"trial_ends_at":null,"last_read_announcements_at":null,"peeriodical_user":0,"status":"anonymous","display_name":"Acer Ibericum","teams":[],"tax_rate":0},"updates":[{"id":69444,"action":"ACCEPTED","content":null,"user_id":null,"updatable_id":125965,"updatable_type":"comments","created_at":"2017-09-26 07:44:05","updated_at":"2017-09-26 07:44:05"

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] web scrapping : parcours hiérarchique via beautifulsoup ?
    Par markham dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 14/06/2017, 22h18
  2. Ajout des commentaires dans les fichiers LDIF (python-ldap)
    Par doudoubens dans le forum Général Python
    Réponses: 0
    Dernier message: 26/06/2012, 15h16
  3. Remerciements, propositions et commentaires
    Par HCath dans le forum Discussions diverses
    Réponses: 57
    Dernier message: 24/08/2006, 10h22
  4. [VB6] mettre en commentaires...
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/04/2004, 15h15

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