我最近被介绍给Node.js。
我正试图抓住网址=" http://www.flipkart.com/search?q = great + gatsby"使用Node.js,cheerio和request,找到20个最相关结果的链接。
现在,如果我搜索"id='fk-header'"
,我会得到一个html输出。
但是,如果我搜索"id='login-signup-newDialog'"
,我会得到一个NULL输出。
这些只在网页的html中出现一次。
同样,如果我使用它:
var x=$("div[class='unit search-bar-submit-wrap size1of6']");
我按预期获得输出。但如果我使用:
var x=$("div[class='aff-tracker fk-hidden']");
输出再次为NULL。 这两个类名都只出现一次。
我无法理解cheerio的这种行为,我可以找到一些元素,而不是其他元素。
以下是我使用的基本代码:
var request = require("request"),
cheerio = require("cheerio"),
url = "http://www.flipkart.com/search?q=great+gatsby";
request(url, function (error, response, body) {
if (!error) {
// console.log(body);
var $ = cheerio.load(body);
var x=$("div[id='fk-header']");
console.log(x.html());
} else {
console.log("We’ve encountered an error: " + error);
}
});
另外,我了解要获得所有20个链接,我需要找到所有类的 - " product-unit unit-4 browse-product new-design",然后找到其孩子的孩子的href属性。 但是我无法找到这个类的任何出现,(甚至不是第一次出现)。
有人可以解释为什么我在使用cheerio时会遇到如此令人困惑的行为?