|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : août 2009 Messages : 20 ![]() |
Bonjour,
Tout d'abord, je tiens à préciser que je débute en Python. Je cherche à récupérer des infos (Nom du film, nom du réalisateur, note …) dans une page web dont voici un extrait : Code :
Je voudrais le faire avec BeautifulSoup, mais je n'y arrive pas pour l'instant. Ce que je ne comprends pas, c'est comment repérer l'objet que je souhaite récupérer. J'ai vu qu'on pouvait le faire avec DOM Inspector (http://www.developpez.net/forums/d32...beautifulsoup/), mais DOM Inspector ne propose pas de TAG pour l'objet que je souhaite récupérer … Quelqu'un pourrait il me mettre sur la voie ? Merci d'avance. |
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() Inscription : octobre 2008 Messages : 972 ![]() |
Bonjour,
Tu peux récupérer les données avec findAll() Avec ton exemple: Code :
Edit: Je met en attachement l'ancienne version du parser de Qarte (Arte+7), cette version utilisait BeautifullSoup que j'ai supprimé par après parce que beaucoup trop lent. je l'ai remplacé par des regex. Cette nouvelle version est ici: http://bazaar.launchpad.net/~vincent...ad:/parsers.py |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : août 2009 Messages : 20 ![]() |
Merci pour ta réponse.
Je digère tout ça et je reviens ... |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : août 2009 Messages : 20 ![]() |
Bon, j'ai testé le code que tu me proposes et ça ne me renvoie pas exactement ce que je cherche.
J'aurais voulu obtenir quelque chose du genre : Titre du film : Les Enfants de Belle Ville Note : On aime beaucoup Réalisateur : Asghar Farhadi Acteurs : Hossein Farzi-Zadeh et Taraneh Alidousti et Babak Ansari et Faramars Gharibian et Ahoo Kheradmand et Farhad Ghaiemian et Hooshang Heyhavand (1h41min) Je crois que je vais finir par le faire avec des regex. C'est surement faisable de façon plus élégante avec un parser comme BS, mais je vais attendre de m'étoffer un peu en python avant ! |
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : août 2009 Messages : 20 ![]() |
J'ai terminé une première version de mon code et il fonctionne à peu près. J'ai finalement utilisé les regex :
Code :
- Gérer les accents etc (j'ai mis un entête utf-8, mais visiblement, c'est plus compliqué que ça) - Quand dans mon champ "Titre" il y a des parenthèses (par exemple : "Le mur (The Wall)" ), ma regex (.*) ne le reconnait pas correctement. Sinon, n'hésitez pas à le critiquer, ça me fera progresser ! |
||
|
|
00
|
|
|
#6 | ||
|
Candidat au titre de Membre du Club
![]() Pierre Quentel Inscription : novembre 2009 Messages : 10 ![]() |
Bonjour,
Le parsing d'un document HTML n'est pas une chose facile, il vaut mieux réutiliser les librairies faites pour ça que d'essayer avec des expressions régulières Pour ton exemple tu peux utiliser le module html.parser, en jouant sur les méthodes handle_starttag et handle_data de la classe HTMLParser. En Python3 voilà ce que ça peut donner : Code :
- Pierre |
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : août 2009 Messages : 20 ![]() |
Merci pour ton aide.
Je teste ta solution dès que possible. Pierre (aussi) |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : août 2009 Messages : 20 ![]() |
Bon, je comprends mieux comment ça fonctionne.
Par contre, j'ai un problème d'accent dans le document généré : le programme a tout simplement supprimé tous les caractères spéciaux (même pas remplacé par é ...). En tout cas, merci à vous, kervaker et VinsS pour votre aide. |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : août 2009 Messages : 20 ![]() |
Le script que tu m'as proposé, kervaker, me permet d'extraire pas mal d'informations que je cherchais.
Cependant, il y en a d'autres que je n'arrive pas à extraire, comme l'adresse de l'affichette ou bien la note : <img src="http://medias-telerama.sdv.fr/cinemo...-575331289.jpg" alt="Les Enfants de Belle Ville"> <p class="t12-crilst-ulysse"><img src="http://icon-telerama.sdv.fr/label/cinema/grand/4.png" alt="On aime beaucoup" title="On aime beaucoup" border="0" /></p> Et je ne comprends pas bien encore comment on navigue vers les différentes balises pour récupérer les différentes informations de la page : faut il décomposer la page html et suivre un "chemin" de balises ? Quand tu cherches à extraire une information, quelle est la marche à suivre pour demander à htmlparser de l'extraire ? Merci pour ton aide |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com