我正在讀一本關於Python的書。有一個小作業: 「編寫一個程序,轉到像Flickr或Imgur這樣的照片分享網站,搜索一類照片,然後下載所有最終的圖像。」 建議只使用網頁瀏覽器,請求和bs4庫。Beautifulsoup返回不完整的html
我不能爲Flickr做到這一點。我發現解析器不能進入元素(div class =「interaction-view」)。在Chrome中使用「Inspect元素」我可以看到裏面有幾個「div」元素和「a」元素。但是,當我使用bs4庫時,它看不到它。
我這樣的代碼:
#!/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)
只打印:
[<div class="interaction-view"></div>, <div class="interaction-view"></div>...]
沒有任何嵌套元素,我不明白爲什麼... 謝謝!
你能改正代碼塊嗎?第一行應該是'#!/ usr/bin/env python3',然後'Soup.select'應該是'parse_obj.select'。這使得人們更容易重現 – hansaplast
完成。謝謝。 – Trarbish