J'utilise Beautifulsoup pour obtenir une page HTML à partir de IMDB et j'aimerais extraire l'image de l'affiche de la page. J'ai l'image basée sur l'un des attributs, mais je ne sais pas comment extraire les données à l'intérieur.
Voici mon code: P>
url = 'http://www.imdb.com/title/tt%s/' % (id) soup = BeautifulSoup(urllib2.urlopen(url).read()) print("before FOR") for src in soup.find(itemprop="image"): print("inside FOR") print(link.get('src'))
4 Réponses :
Vous êtes presque là - juste quelques erreurs. J'ai changé Soupe.Find () CODE> Obtient le premier élément qui correspond, pas une liste, de sorte que vous n'avez pas besoin de le déplacer. Une fois que vous avez eu l'élément, vous pouvez obtenir ses attributs (comme
src code>) à l'aide de l'accès au dictionnaire. Voici une version retravaté:
id code> à
film_id code>, car
ID () code>
est une fonction intégrée, et c'est une mauvaise pratique de masquer ceux-ci. P> p>
Je crois que votre exemple est très proche. Vous devez utiliser Findallall () au lieu de trouver () et lorsque vous ithétiez, vous passez de SRC à lien. Dans l'exemple ci-dessous, je l'ai commuté sur Ce code fonctionne pour moi avec beauxoup4: p> Tag Code>
Si je comprends correctement, vous recherchez le SRC de l'image, pour l'extraction de celui-ci après cela.
En premier lieu, vous devez trouver (à l'aide de l'inspecteur) dans quelle position dans le HTML est l'image. . Par exemple, dans mon cas de particules que je scélérais des boucliers de l'équipe de football, j'avais besoin de: p> alors, vous devez traiter l'image. Vous devez avoir des options. P> 1st: en utilisant bouclier = url_to_image (shield_url) p> < p> 2e en utilisant la bibliothèque Note: strong> Juste Dans cet exemple particulier, j'ai besoin d'ajouter http: au début. P> espère qu'il aide! p> p>
Voici un exemple de travail complet avec Gazpacho :
Étape 1 forte > - Importer tout et télécharger le HTML: P> directory = "images"
Path(directory).mkdir(exist_ok=True)
extension = image.split('.')[-1]
download(image, f"{directory}/{id}.{extension}")