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 に答える