wil*_*ade 2 javascript cheerio
我使用cheerio进行一些抓取并想要访问页面上的head js元素(特别是instructables).我可以访问它,但它作为功能返回.
所以用这个:
console.log($('script').attr('type', "application/ld+json").text);
Run Code Online (Sandbox Code Playgroud)
这提供了'功能'
我认为strinify会工作,但它没有:(
这是因为$("script").attr("type","application/ld+json");返回一个脚本标记数组(页面上只有一个脚本标记),并且它还将页面的所有脚本标记的类型更改为application/ld+json
如果您需要获得具有该类型的那个$("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);
}
}
}
}
});
Run Code Online (Sandbox Code Playgroud)