cheerio脚本元素 - 数据

时间:2017-03-27 17:48:52

标签: javascript cheerio

我正在使用cheerio做一些抓取并想要访问页面上的head js元素(特别是instructables)。我可以访问它,但它作为功能返回。

所以使用这个:

  console.log($('script').attr('type', "application/ld+json").text);

1 个答案:

答案 0 :(得分:6)

这是因为$("script").attr("type","application/ld+json");返回一个脚本标记数组(页面上只有一个脚本标记)并且它还会更改页面的所有脚本标记的类型到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);
            }
        }
    }
  }
});