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

如何使用CheerIO获取第1-5个元素标签数据及所有img的src属性

问题原因
  1. 第一份代码返回undefined是选择器拼写错误导致:你写的div.olw-stage类名拼写错误,正确类名是owl-stage,字母顺序写错了,匹配不到对应元素自然返回空。
  2. 第二份代码只能拿到第一个src是因为Cheerio的attr()方法默认只返回匹配到的第一个元素的属性值,不会自动遍历所有匹配元素。
完整实现代码

你可以直接遍历所有匹配到的img元素,统一提取src属性存入数组即可:

await got(`${URL}`, {
    timeout: {
      request: 30000
    }
  }).then((response) => {
    const $ = cheerio.load(response.body);
    const imgSrcList = [];
    // 选择所有.tb-thumb-item下的img元素遍历
    $('.tb-thumb-item a img').each((i, el) => {
      const src = $(el).attr('src');
      // 过滤空值避免无效数据
      if (src) imgSrcList.push(src);
    });
    // 打印所有提取到的图片地址
    console.log(imgSrcList);
});

如果需要严格匹配DOM层级,把选择器替换为修正拼写后的全路径即可:
$('#thumblist > div.owl-stage-outer > div.owl-stage > div.owl-item > div.tb-thumb-item > a > img')

补充注意事项
  • 如果提取到的src是相对路径,自行拼接站点的协议+域名即可得到完整可访问的图片地址
  • 如果你测试时已经确认可以拿到第一个img的src,说明对应DOM存在于静态HTML中,不需要换用无头浏览器工具抓取动态内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:06:03