cheerio脚本元素 - 数据

wil*_*ade 2 javascript cheerio

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

所以用这个:

  console.log($('script').attr('type', "application/ld+json").text);
Run Code Online (Sandbox Code Playgroud)

Ant*_*iry 6

这是因为$("script").attr("type","application/ld+json");返回一个脚本标记数组(页面上只有一个脚本标记),并且它还将页面的所有脚本标记的类型更改为application/ld+json

请参阅JQuery .attr()文档.

如果您需要获得具有该类型的那个$("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)