介绍
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:
npm install cheerio cheerio-advanced-selectors
让我们看一个简单示例,解析网站源代码。使用以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----------------------------------------------- ----- ---- - ----- ------------------ ----------- -- ------------ ---- -------- ------ -------- ------ -------- ------ ----- -------- ----- - - ------------------- ----------------- ----------------- --------------
输出:
User 2
在此示例中,我们首先加载了Cheerio,并且使用Cheerio-advanced-selectors对该对象进行了扩展。接着,我们将要解析的HTML代码存储在html变量中,然后我们创建一个Cheerio对象,并使用选择器查找所有包含“User 2”文本的li标签。最后,我们打印出了每个匹配元素的字符串内容。
现在,我们来深入了解Cheerio Advanced Selectors中的CSS选择器。
CSS选择器
CSS选择器是选择HTML和XML文档中的元素的基本工具。Cheerio-advanced-selectors支持该CSS选择器类型:属性选择器,基本选择器,结构选择器和伪类选择器。
让我们看一下各种选择器是如何工作的:
基本选择器
一个基本选择器就是一个简单的选择器。下面是几种类型的基本选择器:
标签选择器
通过HTML或XML的标签名称来匹配同类型的元素。
$('h1') // <h1>Welcome to Node.js</h1>
类选择器
通过class名来匹配同一类别的元素。
$('.container') // <div class="container">...</div>
ID选择器
通过某一元素的ID属性值来匹配该元素。
$('#id') // <div id="id">...</div>
通用选择器
匹配HTML 或 XML 中的所有元素。
$('*')
属性选择器
属性选择器使用元素的属性值选择特定的元素,它们使用以下符号:
[attribute]
匹配所有具有 ‘attribute’ 属性的元素。[attribute=value]
选择所有 ‘attribute’ 属性具有精确值的元素。[attribute~=value]
选择所有 ‘attribute’ 属性具有以空格分隔的某个值的元素。[attribute|=value]
选择所有 ‘attribute’ 属性具有值,该值以该参数开头并以横杆(-')分隔的元素。
$('li[class="item"]')
结构选择器
这些选择器使用HTML或XML文档中元素的位置和父子关系来查找元素。以下是一些结构选择器的例子。
子元素选择器
匹配类型为 'E' 的所有子元素。
$('ul > li') // <li>User 1</li> <li>...</li> <li>...</li>
后代选择器
选择某个元素的所有子元素(子元素的子元素)。
$('ul li') // <li>User 1</li> <li>...</li> <li>...</li>
伪类选择器
伪类选择器可以匹配元素的特定状态,如鼠标悬停、已访问等。以下是一些伪类选择器的例子。
:contains()
选取最近的元素,并包含给定的字符串。
$('li:contains("User 2")') // <li>User 2</li>
:first-child
匹配父级的第一个子元素。
$('ol li:first-child') // <li>User 1</li>
:last-child
匹配父级的最后一个子元素。
$('ul li:last-child') // <li>User 3</li>
结论
Cheerio-advanced-selectors作为一个快速的HTML和XML解析库,配备了强大的CSS选择器。如果您正在构建任何与node.js有关的项目并需要解析HTML和XML文件,则可以使用Cheerio Advanced Selector轻松处理它们。
希望这篇文章能够引导您了解Cheerio-advanced-selectors的基础知识,并促使您了解更多。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/156341