【发布时间】:2020-10-17 22:55:11
【问题描述】:
我想做什么:
此 HTML 代码:
<img class="poster lazyload lazyloaded"
data-src="https://image.tmdb.org/t/p/w94_and_h141_bestv2/3qlQM9KP1cyvNfPChA9rASASdHr.jpg"
data-srcset="https://image.tmdb.org/t/p/w94_and_h141_bestv2/3qlQM9KP1cyvNfPChA9rASASdHr.jpg 1x, https://image.tmdb.org/t/p/w188_and_h282_bestv2/3qlQM9KP1cyvNfPChA9rASASdHr.jpg 2x"
alt="Hitman"
src="https://image.tmdb.org/t/p/w94_and_h141_bestv2/3qlQM9KP1cyvNfPChA9rASASdHr.jpg"
srcset="https://image.tmdb.org/t/p/w94_and_h141_bestv2/3qlQM9KP1cyvNfPChA9rASASdHr.jpg 1x, https://image.tmdb.org/t/p/w188_and_h282_bestv2/3qlQM9KP1cyvNfPChA9rASASdHr.jpg 2x"
data-loaded="true">
我想提取“data-src”或“src”(或每个属性都包含图像的 URL)属性值。
我尝试了什么:
Posters = soup.find("img")["src"]
print(Posters)
但这显然会返回每个 img 标签的所有值,因此每个链接都与海报无关。 输出:
https://www.themoviedb.org/assets/2/v4/logos/v2/blue_short-8e7b30f73a4020692ccca9c88bafe5dcb6f8a62a4c6bc55cd9ba82bb2cd95f6c.SVG
https://www.themoviedb.org/assets/2/v4/logos/v2/blue_short-8e7b30f73a4020692ccca9c88bafe5dcb6f8a62a4c6bc55cd9ba82bb2cd95f6c.SVG
我的意思是海报(查看此网址:https://www.themoviedb.org/search?&query=Hitman)电影海报。
总结
我想提取属性中的值,在类“.lazyloaded”中
我希望一切都清楚。谢谢。
编辑:
解释一下,问题出在哪里?
对于阅读的每个人来说,Laurent 的答案是解决方案,问题在于解析后的 HTML。
正如我们在浏览器上看到的那样,包含我试图抓取的属性的类位于“posterlazyloadlazyloaded”类中:
但如果我们打印 website.content:
<img class="poster lazyload"
data-src="https://image.tmdb.org/t/p/w94_and_h141_bestv2/lrDpwvha8VX05vIFxeSZTiPJGYl.jpg"
data-srcset="https://image.tmdb.org/t/p/w94_and_h141_bestv2/lrDpwvha8VX05vIFxeSZTiPJGYl.jpg 1x, https://image.tmdb.org/t/p/w188_and_h282_bestv2/lrDpwvha8VX05vIFxeSZTiPJGYl.jpg 2x"
alt="The Hitman's Bodyguard Collection">
这是非常非常不同的。
【问题讨论】:
标签: python web-scraping