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 :

Parser une page HTML générée par Angular


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2011
    Messages : 51
    Par défaut Parser une page HTML générée par Angular
    Bonjour.


    Je dois parser les infos d'une page HTML. Je vous donne un exemple de page dont il est question : https://www.easports.com/fr/fifa/gam...pc/fifaSeasons

    Vous voyez, je veux récupérer les scores de ce joueur. Donc, rien de particulier, il me suffit de récupérer le code source. Jusque-là, aucun souci, j'arrive à faire ça très bien avec Python3. Là où ça ne colle pas, c'est que le code source lui-même ne possède pas les infos que je souhaite récupérer, puisque les statistiques de ce joueur sont générées par Angular. Ce n'est pas juste du code HTML où les statistiques seraient écrites (je vous invite à faire un petit CTRL + U pour voir le code source de https://www.easports.com/fr/fifa/gam...pc/fifaSeasons), ça passe par Angular.

    Ma question, c'est comment faire pour avec Python3 pour pouvoir récupérer ces infos. Je sais que c'est possible côté client, car c'est ce que fais cette page par exemple, elle est côté client aussi (forcément me direz-vous ^^). Je ne suis pas à la recherche de code, mais d'une méthode je précise

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Tu peux soit analyser le code source de la page et des javascripts (où tracer les appels Javascript avec ton navigateur) pour avoir l'adresse du flux qui alimente ta page web, soit faire tourner une sorte de navigateur sans GUI capable d'interpréter le JS et récupérer le flux sortant (me semble qu'une lib fait ça mais je ne me rappelle plus du nom )

    Cependant, j'ai quelques doutes concernant la légalité du procédé (tout ça pour du football en plus )

  3. #3
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2011
    Messages : 51
    Par défaut
    1) avoir l'adresse du flux
    2) faire tourner une sorte de navigateur sans GUI

    Euh.... tu peux m'expliquer stp ?

  4. #4
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Ben ta page AngularJS a forcément besoin de récupérer des données sur le réseau (via une requête "AJAX" ou autres) pour pouvoir formater le résultat et afficher ton tableau .
    Du coup si t'arrives à savoir où la page va chercher ses données (ton navigateur propose normalement les outils pour cette tâche ), tu peux récupérer directement les données sans passer par la page Angular.

    Ensuite la méthode pour le navigateur, ben c'est tout simplement faire en sorte que ton script Python lance un navigateur caché pour que le javascript contenu dans la page soit exécuté (oui Angular c'est écrit en javascript ) et récupère le HTML généré pour l'analyser correctement. Tu peux utiliser http://jeanphix.me/Ghost.py/ pour cette méthode (j'ai retrouvé la lib )

  5. #5
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2011
    Messages : 51
    Par défaut
    Merci Grand gourou de la zen attitude

    Je crois avoir compris (pardon, je suis un peu lent à la compréhension parfois ^^).

    Donc, je vais sur ma page https://www.easports.com/fr/fifa/gam...pc/fifaSeasons, j'inspecte l'élément qui m'intéresse (en l’occurrence le score), je regarde à quoi il fait référence (en l'occurrence c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div class="score ng-binding" ng-class="{winner: matchData.self.stats.wins == '1'}"> </div>
    ).
    Bien.

    Ensuite, j'utilise ta petite lib ghost (qui a l'air bien pratique d'ailleurs, gg), afin de récupérer séparément le code HTML et le code Javascript, et je n'aurais plus qu'à parser tout ça. J'ai bon ? je pense que oui ^^

  6. #6
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Là t'as mélangé les deux méthodes

    Avec Ghost, tu demandes à la bibli de visiter ton site, tu récupères le HTML généré par le navigateur "intégré" et tu parses tout ça avec BeautifulSoup par exemple

  7. #7
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2011
    Messages : 51
    Par défaut
    Hummm ok je vois, ce sont deux méthodes différentes qui permettent d'arriver au même résultat. ok ok. Merci encore de ta réponse l'ami. Je clique sur "résolu" et je vais me documenter sur ces deux méthodes

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

Discussions similaires

  1. [Python 2.X] Affichage image dans une page html générée par Python
    Par P.G dans le forum Réseau/Web
    Réponses: 2
    Dernier message: 08/05/2015, 10h24
  2. Réponses: 7
    Dernier message: 08/02/2013, 10h21
  3. Sauvegarder page html générée par une jsp
    Par Donaldo dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 16/05/2008, 22h26
  4. Parser une page html, quel outil ?
    Par ggnore dans le forum Linux
    Réponses: 5
    Dernier message: 28/11/2006, 11h48
  5. parser une page HTML pour en retirer de l'info
    Par belakhdarbts10 dans le forum ASP
    Réponses: 1
    Dernier message: 29/10/2006, 18h38

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