JQuery / Cheerio объединяются HTML между тегами - PullRequest
0 голосов
/ 21 февраля 2020

Я хочу разобрать некоторый код HTML с cheerio в моем Node.js, и мне нужно получить объединенное HTML всех тегов между двумя <hr> тегами.

example

Я хочу объединить HTML всех тегов в красном круге. Как я могу этого достичь?

1 Ответ

1 голос
/ 12 марта 2020

Вы можете анализировать содержимое HTML между 2 <hr class="cl-right"> без какой-либо библиотеки, только используя обычную строковую операцию. Возможно, этот обходной путь поможет вам:

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)
...