回答
您可以從Javascript使用Beautiful Soup和json模塊提取圖像列表,然後遍歷列表,並檢索您感興趣的圖像
編輯:
的問題是,圖像具有相同的名稱,因此它們被覆蓋。獲取前三張圖像很簡單,但在傳送帶打開之前,不會加載對傳送帶中其他圖像的引用,因此更加棘手。對於某些圖像,您可以通過用「photo-w」替換路徑中的「photo-s」來找到更高分辨率的版本,但要弄清楚需要深入研究Javascript邏輯。
import urllib, re, json
from bs4 import BeautifulSoup as bs
def img_data_filter(tag):
if tag.name == "script" and tag.text.strip().startswith("var lazyImgs"):
return True
return False
response = urllib.urlopen("https://www.tripadvisor.it/Restaurant_Review-g3174493-d3164947-Reviews-Le_Ciaspole-Tret_Fondo_Province_of_Trento_Trentino_Alto_Adige.html")
soup = bs(response.read(), 'html.parser')
img_data = soup.find(img_data_filter)
js = img_data.text
js = js.replace("var lazyImgs = ", '')
js = re.sub(r";\s+var lazyHtml.+", '', js, flags=re.DOTALL)
imgs = json.loads(js)
suffix = 1
for img in imgs:
img_url = img["data"]
if not "media/photo-s" in img_url:
continue
img_name = img_url[img_url.rfind('/')+1:-4]
img_name = "%s-%03d.jpg" % (img_name, suffix)
suffix += 1
urllib.urlretrieve(img_url, img_name)
謝謝,但我想爲餐廳下載幾張圖片。 – WisdomPill
你的算法只能得到其中的一個......帶有鏈接「Tutte le foto dei visitatori」的那個......你能向我解釋如何得到它們的前3或4個嗎?爲什麼你的算法不下載它們?他們是不是也是圖像? – WisdomPill
非常感謝您......其實我已經自己調整過它,但是我認爲您的編輯效果更好。 – WisdomPill
- 1. EF懶惰加載 - 我可以稍後檢索子集合嗎?
- 2. 懶惰加載不加載
- 3. 懶惰加載視圖
- 4. 懶惰的圖像加載和卸載
- 5. 懶惰加載flexslider
- 6. GWT懶惰加載
- 7. Android懶惰加載
- 8. 懶惰加載Ninject
- 9. Autofac懶惰加載
- 10. Eclipselink懶惰加載
- 11. 懶惰加載和卸載圖像
- 12. 懶惰的WebClient下載
- 13. 可下載的懶惰映射
- 14. 我可以加載大圖片嗎?
- 15. 我可以加載XAML圖片嗎?
- 16. 可以懶惰初始化/加載所有對象嗎?
- 17. 懶惰加載縮略圖圖像
- 18. 懶惰的圖像加載器
- 19. 使用javascript的懶惰加載圖像
- 20. 懶惰的圖像加載瓦特/
- 21. 使用Javascript的懶惰加載圖像
- 22. 懶惰加載GridView與從互聯網下載圖像
- 23. 懶惰下載圖像到gridView
- 24. 如何懶惰加載圖片而不是等待它完成Java下載?
- 25. 學說懶惰加載
- 26. Hibernate懶惰加載HQL
- 27. 混淆懶惰加載
- 28. 是ZODB PersistentLists懶惰加載?
- 29. 懶惰在Blogger上加載
- 30. Android listview懶惰加載
你給的鏈接不起作用 – BradTheBrutalitist
對不起嘗試用這種https://www.tripadvisor.it/Restaurant_Review-g3174493-d3164947-Reviews-Le_Ciaspole-Tret_Fondo_Province_of_Trento_Trentino_Alto_Adige.html – WisdomPill
你可以使用超鏈接,或者您可以點擊左鍵並進行檢查,然後在元素頁面中找到該圖片。 – BradTheBrutalitist