Cheerio中$.extract不是函数报错求助:按教程操作仍无法使用
Cheerio中extract()函数报错"TypeError: $.extract is not a function"的解决办法
你遇到的问题由两个原因导致:
- 版本不兼容:
extract()是Cheerio 1.0.0-rc.12版本才新增的API,若你安装的是更早的旧版本,自然找不到这个函数 - 调用方式错误:
extract()是Cheerio模块的顶层方法,并非cheerio.load()返回的$对象的方法
解决步骤:
升级Cheerio到最新版本
执行以下命令完成升级:npm install cheerio@latest修正代码调用方式
把$.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
相关产品推荐
相关产品推荐

