Cheerio 1.0 发布,内置电池🔋
Cheerio 1.0 发布了!经过 12 个发布候选版本,以及从最初的 1.0 发布候选版本发布仅仅 7 年后,Cheerio 1.0 终于可以宣告完成了。本次发布的主题是“内置电池”,常见用例现在可以直接使用。
所以,准备好两节 AA 电池,继续阅读下面的内容,了解新功能、变更以及升级方法!
新网站和文档
自上次发布以来,我们已经发布了 Cheerio 的新网站和文档。新网站提供详细的指南和 API 文档,帮助您充分利用 Cheerio。访问 cheerio.js.org 查看。
一种新的加载文档方式
将文档加载到 Cheerio 的方式已经过改进。Cheerio 现在支持多种加载方法,每种方法都针对不同的用例进行优化。
load
:用于解析 HTML 或 XML 字符串的经典方法。loadBuffer
:适用于二进制数据,自动检测文档编码。stringStream
和decodeStream
:直接从流解析 HTML。fromURL
:从 URL 获取并解析 HTML,一步到位。
在 加载文档 教程中深入了解这些方法。
简化的数据提取
新的 extract
方法允许您从 HTML 文档中提取数据并将其存储在一个对象中。现在,从 GitHub 获取 Cheerio 的最新版本,并从发布页面中提取发布日期和发布说明变得非常简单,只需要:
import * as cheerio from 'cheerio';
const $ = await cheerio.fromURL(
'https://github.com/cheeriojs/cheerio/releases',
);
const data = $.extract({
releases: [
{
// First, we select individual release sections.
selector: 'section',
// Then, we extract the release date, name, and notes from each section.
value: {
// Selectors are executed within the context of the selected element.
name: 'h2',
date: {
selector: 'relative-time',
// The actual release date is stored in the `datetime` attribute.
value: 'datetime',
},
notes: {
selector: '.markdown-body',
// We are looking for the HTML content of the element.
value: 'innerHTML',
},
},
},
],
});
在 提取数据 指南中详细了解所有可用的选项。
重大更改和升级指南
Cheerio 1.0 引入了几个重大更改,最重要的是
-
NodeJS 最低版本现在为 18.17 或更高版本。
-
导入路径已简化。例如,使用
cheerio/slim
而不是cheerio/lib/slim
。 -
已删除不推荐使用的默认 Cheerio 实例和静态方法。
以前,可以编写类似这样的代码
import cheerio, { html } from 'cheerio';
html(cheerio('<test></test>')); // ~ '<test></test>' -- NO LONGER WORKS确保始终先加载文档
import * as cheerio from 'cheerio';
cheerio.load('<test></test>').html(); -
htmlparser2 选项现在仅存在于
xml
键下const $ = cheerio.load('<html>', {
xml: {
withStartIndices: true,
},
}); -
以前由 Cheerio 重新导出的节点类型现在必须直接从
domhandler
导入。
有关完整变更列表,请查看 变更日志。
升级到 Cheerio 1.0
要升级到 Cheerio 1.0,只需运行
npm install cheerio@latest
参与其中
探索新功能并告诉我们您的想法!遇到问题?在我们的 GitHub 问题追踪器 上报告。有改进想法?欢迎拉取请求!😊
感谢
感谢 @jugglinmike 启动 Cheerio 1.0,并感谢所有帮助塑造此次发布的贡献者。没有你们,我们不可能做到!
感谢我们的 赞助者和支持者 支持 Cheerio 的开发。如果您在工作中使用 Cheerio,请考虑让您的公司支持我们!
最后,感谢您使用 Cheerio 🙇🙇♀️