我正在使用 cheerio 进行一些抓取,并希望访问页面上的 head js 元素(尤其是 instructables)。我可以访问它,但它作为功能返回。
所以使用这个:
console.log($('script').attr('type', "application/ld+json").text);
- (在此:http://www.instructables.com/id/Making-an-online-Fish-Tank-webcam!/step3/Cut-the-project-box/)
这提供了“功能”
我认为 strinify 会起作用,但它不起作用 :(
最佳答案
这是因为$("script").attr("type","application/ld+json");
返回了一组script标签(上面不止一个script标签页面),它还将页面的所有脚本标记的类型更改为 application/ld+json
See JQuery .attr() documentation.
如果你需要得到那种类型的$("script[type='application/ld+json']")
就可以了。
var request = require('request');
var cheerio = require('cheerio');
request('http://www.instructables.com/id/Making-an-online-Fish-Tank-webcam!/step3/Cut-the-project-box/', function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var obj = $("script[type='application/ld+json']");
for(var i in obj){
for(var j in obj[i].children){
var data = obj[i].children[j].data;
if(data){
console.log(data);
}
}
}
}
});
关于javascript - cheerio 脚本元素 - 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43053213/