我目前正在尝试解析this URL中的一些HTML:
我所追求的主要信息是列出的Weight
。使用Chrome中的控制台,我可以发出命令:
$("th:contains(Weight)").parent()[0];
它会给我表格行,其中包含我需要的有关重量的所有信息。
我试图在Cheerio中使用它,但它只返回undefined
。
这是我的Node.js代码:
var needle = require('needle');
var cheerio = require('cheerio');
function rei(product) {
//Request page from rei.com and follow the redirect
return needle("get", "https://rei.com/product/" + product, {
follow_max: 5
}).then(function(response) {
var $ = cheerio.load(response.body);
var test = $("th:contains(Weight)").parent()[0];
console.log(test);
}).catch(function(error) {
console.log(error);
})
};
rei(893905);
以自动方式从Rei网站获取所需信息的最佳方式是什么?
答案 0 :(得分:0)
尝试一下:
var needle = require('needle');
var cheerio = require('cheerio');
var fs = require('fs');
function rei(product) {
//Request page from rei.com and follow the redirect
return needle("get", "https://rei.com/product/" + product, {
follow_max: 5
}).then(function(response) {
var $ = cheerio.load(response.body);
// your data in script
var content = $('script[data-client-store="product-details"]').html();
content = JSON.parse(content);
for (var spec of content.specs) {
if (spec.name == 'Weight') {
console.log(spec.values)
}
}
}).catch(function(error) {
console.log(error);
})
};
rei(893905);