乐闻世界logo
搜索文章和话题

How do get script content using cheerio

4 个月前提问
3 个月前修改
浏览次数18

1个答案

1

Cheerio 是一个快速、灵活且精简的 jQuery 核心实现,专为服务器而设计。它在 Node.js 环境中解析和操作 HTML,非常适合用于 Web 爬虫或服务器端页面处理。在这里,我将详细说明如何使用 Cheerio 获取 HTML 文档中的 <script> 标签内容。

1. 安装 Cheerio:

首先,确保你已经在你的 Node.js 项目中安装了 Cheerio。如果还没有安装,可以通过 npm 来安装:

bash
npm install cheerio

2. 加载 HTML 内容:

你可以使用 Node.js 的 fs 模块读取本地的 HTML 文件,或者使用像 axios 这样的 HTTP 客户端库来获取网页内容。这里我将展示一个使用 axios 获取在线HTML的例子:

javascript
const axios = require('axios'); const cheerio = require('cheerio'); async function fetchHTML(url) { const { data } = await axios.get(url); return data; }

3. 使用 Cheerio 提取 <script> 标签内容:

获取到 HTML 后,我们使用 Cheerio 来加载这段 HTML,然后提取所有 <script> 标签:

javascript
async function extractScripts(url) { const html = await fetchHTML(url); const $ = cheerio.load(html); $('script').each((i, elem) => { console.log($(elem).html()); }); }

在这个函数中,$('script') 选择所有的 <script> 标签,each 方法遍历这些标签,并使用 $(elem).html() 获取每个 <script> 标签内的 JavaScript 代码。

4. 调用函数:

最后,你只需要调用 extractScripts 函数并提供一个 URL:

javascript
extractScripts('https://example.com');

示例说明:

假设我们是从一个简单的 HTML 页面中提取脚本,HTML 页面内容如下:

html
<!DOCTYPE html> <html> <head> <title>示例页面</title> </head> <body> <h1>欢迎来到示例页面</h1> <script> console.log('这是内联 JavaScript 代码'); </script> <script src="example.js"></script> </body> </html>

在这个例子中,extractScripts 函数会打印出 console.log('这是内联 JavaScript 代码'); 和空字符串,因为第二个 <script> 标签是外部 JS 文件的引用,没有内联代码。

通过这种方式,Cheerio 能够帮助开发者从网页中高效地提取和处理 <script> 标签内容,使其对于开发 Web 爬虫等应用特别有用。

2024年8月10日 01:08 回复

你的答案