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

Cheerio中$.extract不是函数报错求助:按教程操作仍无法使用

Cheerio中extract()函数报错"TypeError: $.extract is not a function"的解决办法

你遇到的问题由两个原因导致:

  • 版本不兼容:extract()是Cheerio 1.0.0-rc.12版本才新增的API,若你安装的是更早的旧版本,自然找不到这个函数
  • 调用方式错误:extract()是Cheerio模块的顶层方法,并非cheerio.load()返回的$对象的方法

解决步骤:

  1. 升级Cheerio到最新版本
    执行以下命令完成升级:

    npm install cheerio@latest
    
  2. 修正代码调用方式
    把$.extract()改为cheerio.extract(),两种可行的写法如下:

写法1:直接传入HTML字符串和提取规则

import * as cheerio from 'cheerio';

const html = `
  <ul>
    <li>One</li>
    <li>Two</li>
    <li class="blue sel">Three</li>
    <li class="red">Four</li>
  </ul>
`;

// 提取第一个.red元素的文本内容
const data = cheerio.extract(html, {
  red: '.red',
});

console.log(data); // 输出 { red: 'Four' }

写法2:基于已加载的$对象调用

import * as cheerio from 'cheerio';

const $ = cheerio.load(`
  <ul>
    <li>One</li>
    <li>Two</li>
    <li class="blue sel">Three</li>
    <li class="red">Four</li>
  </ul>
`);

// 提取第一个.red元素的文本内容
const data = cheerio.extract($, {
  red: '.red',
});

console.log(data); // 输出 { red: 'Four' }

验证当前Cheerio版本

可以执行以下命令查看项目中Cheerio的版本,确保版本≥1.0.0-rc.12:

npm list cheerio

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 00:50:12