21

我正在使用cheerio lib 并试图获取这个脚本字段 -script type="application/json" 但由于某种原因它找不到这些脚本标签。怎么了?我该如何解决?

var $ = require('cheerio')
var parsedHTML = $.load(html)
console.log( parsedHTML('script').get().length ); // this is 0
4

2 回答 2

37

如果你使用

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 ); 
于 2015-02-04T19:25:38.010 回答
5

对于那些仍然徘徊在这个线程中的人,以下解决方案对我有用:

const $ = cheerio.load(html, {xmlMode: false});
$('script').length; // no longer 0

(参见htmlparser2 的选项

于 2016-11-21T20:53:13.267 回答