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

cheerio爬取网页时无法抓取特定植物名称元素问题求助

爬取植物站点无数据问题解答

问题定性

你本次遇到的不属于Angular类客户端渲染站点无法直接爬取的问题,目标页面的植物名称数据是直接包含在服务端返回的初始HTML文本中的,无法获取数据的核心原因是使用的元素选择器不匹配页面实际结构。

解决建议

  • 修正元素选择器:你使用的#contAfterAds > div > div.plant-info > div > a和实际页面节点层级不符,实际可匹配到植物名称a标签的选择器可以简化为div.plant-info a,也可以使用更精准的div.plant-info > div:first-child > a避免匹配到其他无关链接。
  • 修正后的可运行代码示例:
const $ = cheerio.load(data);
const postTitles = [];
$('div.plant-info > div > a').each((_idx, el) => {
  const postTitle = $(el).text().trim()
  // 过滤空文本内容
  if (postTitle) {
    postTitles.push(postTitle)
  }
});
console.log(postTitles)
  • 选择器调试技巧:后续遇到同类问题可以先将请求返回的HTML文本保存到本地,用浏览器打开后在控制台执行document.querySelectorAll('待验证选择器')验证是否能匹配到目标元素,确认选择器可用后再写入代码。
  • 反爬适配提示:如果后续爬取分页出现数据为空的情况,先检查请求是否携带了和浏览器一致的User-Agent请求头,避免站点返回反爬错误页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:42:01