npm包 cheerio-advanced-selectors 使用教程

阅读时长 5 分钟读完

介绍

Cheerio-advanced-selectors是一个能够让你使用CSS选择器的插件,可以用于在node.js中解析HTML和XML文件。 Cheerio Advanced Selectors是一个基于Cheerio的扩展程序,Cheerio模块实现了针对服务器端的DOM模型,因此该模块对于处理服务器端HTML和XML文件特别有效,对于web爬虫和数据分析系统特别有效。

安装和使用

安装Cheerio Advanced Selectors非常简单。首先需要通过npm安装Cheerio和Cheerio-advanced-selectors:

让我们看一个简单示例,解析网站源代码。使用以下代码:

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

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

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

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

输出:

在此示例中,我们首先加载了Cheerio,并且使用Cheerio-advanced-selectors对该对象进行了扩展。接着,我们将要解析的HTML代码存储在html变量中,然后我们创建一个Cheerio对象,并使用选择器查找所有包含“User 2”文本的li标签。最后,我们打印出了每个匹配元素的字符串内容。

现在,我们来深入了解Cheerio Advanced Selectors中的CSS选择器。

CSS选择器

CSS选择器是选择HTML和XML文档中的元素的基本工具。Cheerio-advanced-selectors支持该CSS选择器类型:属性选择器,基本选择器,结构选择器和伪类选择器。

让我们看一下各种选择器是如何工作的:

基本选择器

一个基本选择器就是一个简单的选择器。下面是几种类型的基本选择器:

标签选择器

通过HTML或XML的标签名称来匹配同类型的元素。

类选择器

通过class名来匹配同一类别的元素。

ID选择器

通过某一元素的ID属性值来匹配该元素。

通用选择器

匹配HTML 或 XML 中的所有元素。

属性选择器

属性选择器使用元素的属性值选择特定的元素,它们使用以下符号:

  • [attribute] 匹配所有具有 ‘attribute’ 属性的元素。
  • [attribute=value] 选择所有 ‘attribute’ 属性具有精确值的元素。
  • [attribute~=value] 选择所有 ‘attribute’ 属性具有以空格分隔的某个值的元素。
  • [attribute|=value] 选择所有 ‘attribute’ 属性具有值,该值以该参数开头并以横杆(-')分隔的元素。

结构选择器

这些选择器使用HTML或XML文档中元素的位置和父子关系来查找元素。以下是一些结构选择器的例子。

子元素选择器

匹配类型为 'E' 的所有子元素。

后代选择器

选择某个元素的所有子元素(子元素的子元素)。

伪类选择器

伪类选择器可以匹配元素的特定状态,如鼠标悬停、已访问等。以下是一些伪类选择器的例子。

:contains()

选取最近的元素,并包含给定的字符串。

:first-child

匹配父级的第一个子元素。

:last-child

匹配父级的最后一个子元素。

结论

Cheerio-advanced-selectors作为一个快速的HTML和XML解析库,配备了强大的CSS选择器。如果您正在构建任何与node.js有关的项目并需要解析HTML和XML文件,则可以使用Cheerio Advanced Selector轻松处理它们。

希望这篇文章能够引导您了解Cheerio-advanced-selectors的基础知识,并促使您了解更多。

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