jQuery / cheerio获得标签之间的组合HTML

问题描述 投票:0回答:1

[我想在Node.js中分解一些带有cheerio的HTML代码,我需要获取两个<hr>标签之间所有标签的组合HTML。

example

我想要红色圆圈中所有标签的组合HTML。我该如何实现?

javascript jquery node.js cheerio
1个回答
1
投票

您可以使用通用字符串操作来解析2 <hr class="cl-right">之间的HTML内容,而无需任何库。也许此解决方法可以为您提供帮助:

let content = '<!-- Plugin inserted: [begin] -->'
content+= '<div class="news-single-item">'
content+= '<div style="float: right;"></div>'
content+= '<a href="nachrichten/einzelansicht/article/im-dienst.html" title="Neue Schulsanitate im Dienst">Neue Schulsanitater im Dienst</a>'
content+= '<div class="news-single-rightbox"></div>'
content+= '<h1>Exkursion der Literaturkurse</h1>'
content+= '<hr class="cl-right">'
content+= '<div class="news-single-img"></div>'
content+= '<p></p>'
content+= '<p></p>'
content+= '<p>(Sophie Daubenspeck fOr die Literaturk </p>'
content+= '<p>&nbsp;</p>'
content+= '<p>&nbsp;</p>'
content+= '<hr class="cl-right">'
content+= '<div class="news-single-backlink"></div>'
content+= '</div>'
content+= '<!-- Plugin inserted: [end] -->'
content+= '</div>'

const getContentInside = html => {
    return html.split('<hr class="cl-right">')[1]
}
console.log(getContentInside(content))

然后,如果您从URL请求内容:

const url = 'http://www.example.com/your.desired.url.here'
const request = require ('request-promise')

const getContentInside = html => {
    return html.split('<hr class="cl-right">')[1]
}

const startParse = async url => {
    const html = await request(url)
    const contentHR = getContentInside(html)
    console.log(contentHR)
}

startParse(url)
© www.soinside.com 2019 - 2024. All rights reserved.