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

使用Cheerio抓取<li>元素失败,如何提取目标列表项内容?

解决Cheerio抓取特定
  • 元素的问题
  • 问题分析

    你原有的选择器过度依赖DOM深层层级结构,页面结构稍有变动就会失效,同时没有排除最后那个用于搜索的<li>元素,这是抓取失败的核心原因。

    优化方案

    目标列表项都带有select2-selection__choice专属类,直接通过这个类定位更可靠,同时自动过滤掉不需要的搜索项:

    方案一:清理文本内容

    $('ul.select2-selection__rendered li.select2-selection__choice').each((i, el) => {
      // 移除文本开头的删除符号并清理空格
      const programText = $(el).text().replace('×', '').trim();
      console.log(programText);
    });
    

    方案二:精准提取目标文本节点

    $('ul.select2-selection__rendered li.select2-selection__choice').each((i, el) => {
      // 筛选出非span的子节点,直接提取纯目标文本
      const programText = $(el).contents().not('span').text().trim();
      console.log(programText);
    });
    

    方案优势

    • 选择器更稳定:用类选择器替代深层路径,避免因页面结构调整导致抓取失败
    • 自动过滤无效项:最后一个带select2-search类的搜索框<li>不会被选中
    • 文本处理更干净:两种方式都能移除多余的删除符号,得到纯净的专业名称文本

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

    相关产品推荐
    方舟 Agent Plan

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

    最近更新时间:2026.08.20 06:03:20