获取与cheerio问题的链接 - NodeJS

时间:2017-05-30 15:09:37

标签: javascript node.js web-scraping cheerio

为了使用cheerio从带有Node JS的网页获取所有链接,我使用这些在90%的时间内工作的行:

const request = require('request');
const cheerio = require('cheerio');

var url = 'an URL';
request(url, function(err, resp, body){
  $ = cheerio.load(body);
  links = $('a');
  $(links).each(function(i, link){
    console.log($(link).text());
  });
});

但是对于某些网站来说,它不能正常工作,例如: http://www.sylire.com/ http://www.bernieshoot.fr/

我无法弄明白。有人能给我提示解决这个问题吗?

请注意,我可以使用以下命令在浏览器控制台中正常获取这些网站的所有链接:

var link = document.querySelectorAll("a");
for (var i of link){
  console.log(i.text);
}

此致

1 个答案:

答案 0 :(得分:2)

这是因为用户代理,您需要在请求中发送一个,告诉他们您是“真正的浏览器”访问。

适用于我的示例:

src