Как получить контент script с помощью cheerio
Я использую cheerio lib и пытаюсь получить это поле script - script type="application/json"
Но по некоторым причинам он не может найти эти теги script. Что не так? Как я могу исправить?
var $ = require('cheerio')
var parsedHTML = $.load(html)
console.log( parsedHTML('script').get().length ); // this is 0
Ответы
Ответ 1
Если вы используете
var parsedHTML = $.load('<html><head><script type="application/json" src="http://myscript.org/somescript.ks"></script></head></html>')
console.log( parsedHTML('script').get()[0].attribs['src'] );
Вы можете получить URL, а затем использовать запрос для получения содержимого
Если вы хотите получить встроенный скрипт, вы можете сделать это:
console.log( parsedHTML('script').get()[0].children[0].data );
Ответ 2
Для тех, кто все еще блуждает по этой теме, для меня работало следующее решение:
const $ = cheerio.load(html, {xmlMode: false});
$('script').length; // no longer 0
(Смотрите параметры htmlparser2)