令人困惑的Cheerio行为(Node.js)

时间:2016-06-12 15:39:11

标签: javascript node.js jquery-selectors request cheerio

我最近被介绍给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时会遇到如此令人困惑的行为?

0 个答案:

没有答案