Je me suis mis récemment à essayer de développer un petit script en python, pour m'entrainer et m'amuser. Je suis plutôt débutant dans ce langage, aussi je fais comme je peux. Il a pour but de récupérer les informations sur un film que le script reçoit en paramètre (enfin pour l'instant c'est harry potter d'office). Je voudrais vos avis et conseils sur le début du script.
Je l'ai fait avec python 2.7 et les modules beautifulSoup et requests. Je les ai choisis parce qu'ils sont faciles d'utilisation.
Mon code est pour l'instant procédural, je mettrai tout ça dans des fonctions plus tard. Ce que je voudrais savoir avant tout c'est si ma technique pour récupérer les informations est acceptable. J'ai regardé le code source de la page, et essayé de trouver des éléments pour récupérer les bonnes infos dans le code html. Voyez plutôt:
Code : Tout sélectionner
#!/usr/bin/python
# -*-coding:Utf-8 -*
import requests
from BeautifulSoup import BeautifulSoup
import re
req = requests.get('http://www.allocine.fr/film/fichefilm_gen_cfilm=134925.html')
page = req.content
soup = BeautifulSoup(page)
#print soup.prettify()
# Renvoie le titre du film
titre=soup.findAll('title')
print "Titre du film: ", titre[0].renderContents()
# Renvoie le synopsis
#soup.findAll('p', limit=1)
synopsis=soup.findAll(property='v:summary')
print synopsis[0].renderContents()
# Renvoie le genre
genre=soup.findAll(href=re.compile(".?/film/tous/genre.?"))
print genre[0].renderContents()
# Renvoie la durée
duree=soup.findAll(text=re.compile(".?Dur.?e.?"))
duree=str(duree[0])
print duree[10:18]
# Renvoie l'année de production
annee=soup.findAll(href=re.compile(".?/film/tous/decennie.?"))
print annee[0].renderContents()
# Renvoie la compagnie qui produit le film
distributeur=soup.findAll(href=re.compile(".?/societe/fichesociete.?"))
print distributeur[0].renderContents()
# Renvoie les notes du film
notes=soup.findAll(attrs={"class" : "moreinfo"})
print notes[0].renderContents()
print notes[1].renderContents()
print notes[2].renderContents()
# Renvoie le réalisateur
realisateur=soup.findAll(rel='v:directedBy')
print realisateur[0].renderContents()
# Renvoie le titre original
titre_original=soup.findAll(attrs={"class" : "purehtml"})
titre_original=titre_original[0].renderContents()
titre_original=titre_original[4:]
titre_original=titre_original[:len(titre_original)-5]
print titre_original
# Renvoie le casting
acteurs=soup.findAll(rel='v:starring')
for case in acteurs:
print case.renderContents()