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

使用Cheerio爬取电商网站时图片链接获取异常问题求助

解决Jumia突尼斯站爬虫获取图片链接为占位GIF的问题

嘿,我来帮你搞定这个图片链接的问题!这其实是电商网站常用的懒加载优化策略导致的,很常见~

问题根源

你拿到的data:image/gif;base64,...是一张1x1的占位GIF。Jumia这类电商站为了提升页面加载速度,会给商品图片做懒加载处理:初始加载时用占位图填充src属性,而真实的图片链接会藏在自定义的data-*属性里(比如data-src),只有当图片滚动到浏览器可视区域时,才会把真实链接替换到src中。你的爬虫直接读取src,自然只能拿到占位图啦。

具体解决方案

第一步,先确认真实链接的属性名:打开目标页面的开发者工具(F12),找到商品的img标签,你会看到类似这样的结构:

<img class="image-wrapper img" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://tn.jumia.is/D8RjVA7gYqsaxxwKgqOa_6582_k=/fit-in/220x220/filters:fill(white):sharpen(1,0,false):quality(100)/product/48/9141/1.jpg?5043" />

然后修改你的代码,把读取src改成读取对应的data-src属性即可:

product = {
  // 替换原来的image字段,优先取data-src,兼容特殊情况再回退到src
  image: $image.attr("data-src") || $image.attr("src"),
  productName: $productName.text(),
  price: $price.text().trim(),
  currencyTag: $currencyTag.text().trim(),
  categorie: $categorie,
  availability: $availability.text().trim(),
  site: $site.attr("alt"),
  refProduct: $refProduct.text(),
  prodcutLink: $productLink.attr("href")
};

额外小技巧

如果你不确定属性名,可以先在代码里打印出img标签的所有属性,精准定位真实链接的位置:

console.log($image.attr()); // 输出该img标签的所有属性键值对,一目了然

这样就能轻松拿到真实的商品图片链接啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:39:21