python - Python BeautifulSoup 获取图像 src 的 KeyError
问题描述
我正在尝试从此页面获取产品图片网址。我正在获取图像 src,但也收到此错误KeyError: 'data-lazy-src'
这是我的代码:
image = soup.select('img.attachment-shop_single')
for i in image:
img = i['data-lazy-src']
print(img)
python外壳结果:
https://thedankvape.com/wp-content/uploads/2020/04/ACE-OF-SPADES.jpeg
Traceback (most recent call last):
File "<pyshell#56>", line 2, in <module>
img = i['data-lazy-src']
File "C:\Users\Mick\AppData\Local\Programs\Python\Python39\lib\site-packages\bs4\element.py", line 1406, in __getitem__
return self.attrs[key]
KeyError: 'data-lazy-src'
我正在获取图像 src,但为什么会出现关键错误?这是 HTML 元素
>>>soup.select('img.attachment-shop_single')
[<img alt="ace of spades dank vapes" class="attachment-shop_single size-shop_single wp-post-image" data-lazy-src="https://thedankvape.com/wp-content/uploads/2020/04/ACE-OF-SPADES.jpeg" height="800" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20600%20800'%3E%3C/svg%3E" title="ace of spades dank vapes" width="600"/>, <img alt="ace of spades dank vapes" class="attachment-shop_single size-shop_single wp-post-image" height="800" src="https://thedankvape.com/wp-content/uploads/2020/04/ACE-OF-SPADES.jpeg" title="ace of spades dank vapes" width="600"/>]
如何获取最后一个 src 元素图片链接src="https://thedankvape.com/wp-content/uploads/2020/04/ACE-OF-SPADES.jpeg
?
解决方案
如评论中所述,有两个<img>
class "attachment-shop_single"
。最安全的方法是只选择一个具有data-lazy-src
属性的:
import requests
from bs4 import BeautifulSoup
url = "https://thedankvape.com/product/ace-of-spades-dank-vapes/"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
img = soup.select_one("[data-lazy-src]")
print(img["data-lazy-src"])
印刷:
https://thedankvape.com/wp-content/uploads/2020/04/VAPE.png
推荐阅读
- python - 尝试写入文本文件时出现索引错误
- java - Java - 如何找到 BigDecimal 的倒数?
- ios - 在 IAP 收据验证中检测促销代码
- here-api - 从 PC 更新 HERE 离线地图
- php - 将 html 表单值转换为 csv 时没有获取标题
- linux - 如何将从linux生成的静态库.a链接到windows c项目
- android - 运行 App Android Studio 时 Activity 不正确
- pandas - 如何避免一列中多个类别的虚拟变量陷阱
- python - 如何用png图像替换jpg图像
- reactjs - React Native Redux Action 正在删除显示屏上的其他操作