我正在开发一个网络爬虫,以读取这样的html代码:
<h3>title 1</h3>
<p>content 1</p>
<h3>title 2</h3>
<p>content 2</p>
<h3>title 3</h3>
<p>content 3</p>
<h3>title 4</h3>
<p>content 4</p>
<h3>title 5</h3>
<p>content 5</p>
我想将标题1与内容1匹配,将标题2与内容2匹配并继续。我在cheerio文档或jquery中没有找到获取下一个元素或循环所有DOM的方法。
在文档中,我只能进入一个元素(孩子)并返回(父母)。但是在找到上方的
之后,我找不到任何方法。
任何想法?
谢谢!
答案 0 :(得分:0)
有以下几种方式:
const cheerio = require('cheerio')
const $ = cheerio.load('<h3>title 1</h3><p>content 1</p><h3>title 2</h3><p>content 2</p><h3>title 3</h3><p>content 3</p><h3>title 4</h3><p>content 4</p><h3>title 5</h3><p>content 5</p>')
$('h3').get().map( h3 => {
let title = $(h3).text()
let content = $(h3).next().text()
// or
content = $(h3.nextSibling).text()
console.log(title, content)
} )
jQuery使您可以使用$(h3).find('+ p')
,这虽然不错,但cheerio不支持。