Node.js 中如何使用 Cheerio 进行 Web 爬虫?

阅读时长 6 分钟读完

随着互联网的快速发展,Web 爬虫成为了获取互联网信息的重要手段之一。Node.js 作为目前流行的服务器端 JavaScript 运行环境,它的异步非阻塞特性为开发 Web 爬虫提供了很大的便利。而 Cheerio 则是一个类似于 jQuery 的解析 HTML/XML 文档的库,可以帮助我们从 HTML 文档中选择和操作元素。

本文将介绍如何在 Node.js 中使用 Cheerio 进行 Web 爬虫,并提供示例代码。

1. 安装 Cheerio

在使用 Cheerio 之前,需要先安装它。可以通过 npm 包管理工具进行安装:

2. 使用 Cheerio 进行 Web 爬虫

2.1. 获取页面内容

首先需要获取要爬取的网页内容,在 Node.js 中可以使用 http 或者 https 模块进行请求,也可以使用第三方的请求库。这里以使用 axios 库为例:

-- -------------------- ---- -------
----- ----- - -----------------

----- --- - --------------------------

----- -------- ---------------- -
  --- -
    ----- -------- - ----- ---------------
    ------ --------------
  - ----- ------- -
    ---------------------
  -
-

---------------------------- -- -
  ------------------
---

2.2. 使用 Cheerio 解析页面

获取到页面内容后,就可以使用 Cheerio 进行解析。Cheerio 的使用方式和 jQuery 很相近,我们可以像使用 jQuery 对文档进行操作一样对页面进行操作。以下是一个简单的示例代码:

-- -------------------- ---- -------
----- ----- - -----------------
----- ------- - -------------------

----- --- - --------------------------

----- -------- ---------------- -
  --- -
    ----- -------- - ----- ---------------
    ------ --------------
  - ----- ------- -
    ---------------------
  -
-

---------------------------- -- -
  ----- - - -------------------
  ----- ----- - ------------------
  -------------------
---

上面的代码中,我们首先获得页面的 HTML 内容,然后使用 Cheerio 的 load() 方法将其加载到内存中,最后使用 $ 变量来操作文档。在这个例子中,我们通过选择器 $('title') 来选择页面中的标题标签,然后使用 .text() 方法来获取标签中的文本。

2.3. 操作文档

接下来我们来看一些常见的文档操作。

  1. 获取元素的属性

使用 $ 变量和选择器来选择元素,然后使用 attr() 方法来获取元素的属性值:

  1. 遍历元素

可以使用 each() 方法遍历选择器匹配到的所有元素:

  1. 过滤元素

可以使用 filter() 方法根据条件过滤元素:

  1. 获取元素的子元素

使用 children() 方法获取元素的所有子节点:

  1. 导航到元素的父元素、兄弟元素和上一个/下一个元素

使用 parent() 方法获取元素的直接父元素,使用 next() 方法和 prev() 方法来导航到元素的下一个兄弟元素和上一个兄弟元素:

2.4. 修改文档

除了获取文档信息,Cheerio 还可以用来修改文档。以下是一些操作示例。

  1. 修改元素的属性

使用 attr() 方法修改元素属性:

  1. 添加/修改元素的属性

可以在元素上使用起始标签来添加新的属性或者修改现有的属性:

  1. 在元素前面/后面添加新元素

使用 before() 方法在元素前面添加新元素,使用 after() 方法在元素后面添加新元素:

  1. 删除元素

使用 remove() 方法删除元素:

总结

本文介绍了在 Node.js 中使用 Cheerio 进行 Web 爬虫的基础知识和示例代码。通过 Cheerio 的选择器和 DOM 操作,我们可以方便地从 Web 页面中获取所需的信息,并进行一些简单的修改。同时,需要注意的是,在进行 Web 爬虫操作时,需要尊重网站的 robots.txt 规则,遵循爬虫道德规范。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6459c589968c7c53b0be30be

纠错
反馈