如何为嵌套 div 格式化 cheerio 选择器?
How to format cheerio selector for a nested div?
我需要一些帮助来使用 cheerio:
抓取网站
https://www.keepandshare.com/calendar/mobile.php?i=1940971&do=n
我要抓取的文本就在 <p>
之后。我想从 calendar_one_line_text
div.
中获取此文本的最后一次出现
<div class="calendar_one_line_text">
<p>Cedar 3,044 gr/m3 High, Grass 27 gr/m3 High, Trees 27 gr/m3 Medium, Molds Low</p>
</div>
您将如何构造您的选择器以 return 此文本?
所以我们在这里需要关注的是 Cheerio 文档的选择器部分。
$( selector, [context], [root] )
select或在根范围内搜索的上下文范围内搜索。 selector and context 可以是字符串表达式、DOM 元素、DOM 元素数组或 cheerio 对象。 root 通常是 HTML 文档字符串。
此 selector 方法是遍历和操作文档的起点。与 jQuery 一样,它是在文档中 selecting 元素的主要方法,但与 jQuery 不同的是,它建立在 CSSSelect 库之上,该库实现了大部分 Sizzle select OR.
根据这些信息并查看您提供的 HTML,我们可以得出我们需要的 select 的结论!我们有一个 div 和 .calendar_one_line_text
的 class 并且在其中我们有 p
标签。
因此,根据 select 或者,我们 select 一些具体的内容,然后我们可以继续深入研究更具体的内容。从 .calendar_one_line_text
开始,然后抓住其中找到的 p
标签。
$('.calendar_one_line_text p').text()
有关完整示例,您可以查看我在哪里实现了上述文本。
const cheerio = require('cheerio');
const $ = cheerio.load(`<div class="calendar_one_line_text">
<p>Cedar 3,044 gr/m3 High, Grass 27 gr/m3 High, Trees 27 gr/m3 Medium, Molds Low</p>
</div>`);
const wordsAfterP = $('.calendar_one_line_text p').text()
console.log(wordsAfterP)
如果你想得到最后一次出现,你可以把wordsAfterP
转换成一个数组,然后抓取最后的元素数据
const wordsAfterP = $('.calendar_one_line_text p').toArray()
console.log(wordsAfterP[wordsAfterP.length - 1].firstChild.data)
我需要一些帮助来使用 cheerio:
抓取网站https://www.keepandshare.com/calendar/mobile.php?i=1940971&do=n
我要抓取的文本就在 <p>
之后。我想从 calendar_one_line_text
div.
<div class="calendar_one_line_text">
<p>Cedar 3,044 gr/m3 High, Grass 27 gr/m3 High, Trees 27 gr/m3 Medium, Molds Low</p>
</div>
您将如何构造您的选择器以 return 此文本?
所以我们在这里需要关注的是 Cheerio 文档的选择器部分。
$( selector, [context], [root] )
select或在根范围内搜索的上下文范围内搜索。 selector and context 可以是字符串表达式、DOM 元素、DOM 元素数组或 cheerio 对象。 root 通常是 HTML 文档字符串。
此 selector 方法是遍历和操作文档的起点。与 jQuery 一样,它是在文档中 selecting 元素的主要方法,但与 jQuery 不同的是,它建立在 CSSSelect 库之上,该库实现了大部分 Sizzle select OR.
根据这些信息并查看您提供的 HTML,我们可以得出我们需要的 select 的结论!我们有一个 div 和 .calendar_one_line_text
的 class 并且在其中我们有 p
标签。
因此,根据 select 或者,我们 select 一些具体的内容,然后我们可以继续深入研究更具体的内容。从 .calendar_one_line_text
开始,然后抓住其中找到的 p
标签。
$('.calendar_one_line_text p').text()
有关完整示例,您可以查看我在哪里实现了上述文本。
const cheerio = require('cheerio');
const $ = cheerio.load(`<div class="calendar_one_line_text">
<p>Cedar 3,044 gr/m3 High, Grass 27 gr/m3 High, Trees 27 gr/m3 Medium, Molds Low</p>
</div>`);
const wordsAfterP = $('.calendar_one_line_text p').text()
console.log(wordsAfterP)
如果你想得到最后一次出现,你可以把wordsAfterP
转换成一个数组,然后抓取最后的元素数据
const wordsAfterP = $('.calendar_one_line_text p').toArray()
console.log(wordsAfterP[wordsAfterP.length - 1].firstChild.data)