Je suis en train de lire un livre sur Python en ce moment. Il y a un petit projet pour les devoirs: "Écrire un programme qui va à un site de partage de photos comme Flickr ou Imgur, recherche une catégorie de photos, puis télécharge toutes les images résultantes." Il est suggéré d'utiliser uniquement webbrowser, requests et bs4 libraries.Beautifulsoup renvoie html incomplet
Je ne peux pas le faire pour Flickr. J'ai trouvé que l'analyseur ne peut pas aller à l'intérieur de l'élément (div class = "interaction-view"). En utilisant "Inspecter l'élément" dans Chrome, je peux voir qu'il y a quelques éléments "div" à l'intérieur et un élément "a". Cependant, quand j'utilise la bibliothèque bs4, elle ne peut pas le voir.
Mon code comme ceci:
#!/usr/bin/env python3
# To download photos from Flickr
import requests, bs4
search_name = "spam"
website_name = requests.get('https://www.flickr.com/search/?text='
+ search_name)
website_name.raise_for_status()
parse_obj = bs4.BeautifulSoup(website_name.text, "html.parser")
elements = parse_obj.select('body #content main .main.search-photos-results \
.view.photo-list-view.requiredToShowOnServer \
.view.photo-list-photo-view.requiredToShowOnServer.awake \
.interaction-view')
print(elements)
Il imprime uniquement:
[<div class="interaction-view"></div>, <div class="interaction-view"></div>...]
Sans éléments imbriqués et je ne comprends pas pourquoi ... Thank you!
pouvez-vous corriger le bloc de code? la première ligne devrait être '#!/usr/bin/env python3' et ensuite' Soup.select' devrait être 'parse_obj.select'. Cela rend plus facile pour les gens de reproduire – hansaplast
Terminé. Je vous remercie. – Trarbish