Я пытаюсь кодировать jQuery.fn.text с помощью NodeJS / Cheerio.
Я это сделал :
function getText(elems) {
var ret = '', elem;
for (var i = 0; elems[i]; i++) {
elem = elems[i];
// Get the text from text nodes
if (elem.nodeType === 3) {
ret += elem.nodeValue;
} else if (elem.nodeType !== 8) {
// Traverse everything else, except comment nodes
ret += getText(elem.childNodes);
}
}
return ret;
}
request({
method: 'GET',
url: 'https://www.lemonde.fr/',
}, (error, response, html) => {
if (error) return console.error(error);
const $ = cheerio.load(html);
console.log(getText($('body')));
});
но я не получаю одинаковый результат между console.log(getText($('body')))
и console.log($('body').text())
. С getText
отсутствует какой-то текст. Результат не полный.
Уточнение: я знаю, как использовать jQuery.fn.text. Я просто хочу знать, как получить текст элемента а-ля jQuery с помощью NodeJS / Cheerio.
textContent
родительского элемента, возможно, с некоторыми поправками для обработки любых пробелов / разрывов строк. Если это не сработает для вас, не могли бы вы добавить HTML-код к вопросу вместе с ожидаемым результатом. - person Rory McCrossan   schedule 29.08.2019console.log($('body').text())
. Я не могу связаться с ним, потому что он слишком важен. То же самое и с выходом. - person LeMoussel   schedule 29.08.2019