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

Scrapy提取商品图片返回空值 如何获取逗号分隔的图片链接

问题原因

原选择器返回空的核心原因有两个:

  • 目标站点的商品画廊图片容器是div标签,不是原代码写的figure标签,标签名不匹配直接导致选择器命中不到任何节点
  • 站点对商品图做了懒加载处理,高清原图地址没有直接放在a标签的href属性上,直接取href拿不到有效链接
调整后的提取方案

直接匹配画廊容器上存储的高清原图自定义属性,稳定性最高,步骤如下:

  • 把选择器的标签从figure改为div,匹配真实DOM节点
  • 直接读取节点上的data-large_image属性,拿到未压缩的高清商品图地址,避开懒加载占位图干扰
  • 对提取结果去重、过滤空值,避免WooCommerce默认输出重复尺寸图的问题
  • 把处理后的图片列表用逗号拼接成字符串

对应的Scrapy代码如下:

# 提取所有商品高清图链接
raw_img_list = response.css('div.woocommerce-product-gallery__image::attr(data-large_image)').getall()
# 去重+过滤空值+转绝对路径
processed_img_list = []
for img in raw_img_list:
    if not img:
        continue
    full_img_url = response.urljoin(img)
    if full_img_url not in processed_img_list:
        processed_img_list.append(full_img_url)
# 拼接为逗号分隔的字符串
item['img'] = ','.join(processed_img_list)

兜底方案:如果上述选择器仍有漏图,可以补充提取画廊内所有img标签的data-src、src属性,和之前的结果合并去重即可,对应选择器为div.woocommerce-product-gallery img::attr(data-src), div.woocommerce-product-gallery img::attr(src)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 17:36:25