Node.js crawler:通过cheerio通过文本查找href

时间:2018-04-14 04:21:01

标签: javascript jquery node.js

我的节点应用从具有请求库的某个网站获取HTML代码。通过使用jQuery(cheerio)我想找到一个href联系部分。但后来我只获得了未定义的价值。

request(options.websiteUrl, (err, response, body) =>{
            if(!err && response.statusCode == 200){

                    let $ = cheerio.load(body); 
                    let contact =  $('a:contains("contact")').attr('href');
                    console.log(contact); //undefined

            }
    });

我已经将相同的jQuery命令直接粘贴到该网站的JS控制台中,它工作正常,给我正确的href。常规jQuery和Cheerio之间的区别是什么让我无法在我的节点应用程序中执行该代码以及如何解决它?

1 个答案:

答案 0 :(得分:0)

似乎cheerio没有等待响应体javascript被完全加载。您可以将cheerio代码块包装在setTimeout中,以便为身体提供加载的时间。

您可以在here上看到另一个类似的堆栈溢出帖子。