You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python BeautifulSoup提取图片报KeyError: 'data-lazy-src'的解决方法

问题解答

报错原因

soup.select('img.attachment-shop_single')共返回2个符合筛选条件的img节点:

  • 第一个节点携带data-lazy-src属性,所以第一次循环时可以正常取值并打印链接
  • 第二个节点没有data-lazy-src属性,直接用i['属性名']的方式取值时,BeautifulSoup就会抛出KeyError

解决方法

方案1:兼容所有匹配节点,自动取有效链接

使用BeautifulSoup的get()方法取值,属性不存在时不会抛出异常,可设置属性优先级,同时过滤占位的无效svg链接:

image = soup.select('img.attachment-shop_single')
for i in image:
    # 优先取懒加载属性data-lazy-src,不存在则取src属性
    img = i.get('data-lazy-src', i.get('src'))
    # 过滤占位用的svg伪链接,只保留有效图片链接
    if img and 'data:image/svg' not in img:
        print(img)

方案2:直接提取第二个img的src链接

如果你确认需要第二个匹配节点的src属性,可直接通过下标取值:

image = soup.select('img.attachment-shop_single')
# 列表下标从0开始,第二个元素对应下标1
if len(image) >= 2:
    target_img = image[1]['src']
    print(target_img)

内容的提问来源于stack exchange,提问作者boyenec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:54:03