Google搜索结果抓取显示“服务不可用”错误

时间:2019-03-25 05:55:50

标签: node.js web-scraping google-search

我正在尝试使用Node.js中的Cheerio抓取Google搜索结果。我不断收到“ 503-服务不可用”错误。一些请求给了我适当的响应,但是此错误弹出。我确实在stackoverflow上读过类似的问题,但是找不到答案。

我尝试添加用户代理,甚至在标头中设置代理,但没有成功。

如果可以做到的话,我该如何解决呢?

感谢任何帮助!

代码:

const request = require("request");

var getPage = url => {
  return new Promise((resolve, reject) => {
    request({
      url: url,
      headers: {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763",
        //host : "37.59.248.190",
        //port : 8080
      }
    }, (error, response, html) => {
      console.log(response.statusCode, response.statusMessage);
      if (!error && response.statusCode == 200) {
        resolve(response);
      } else {
        reject(response);
      }
    });
  });
}

module.exports = getPage;

1 个答案:

答案 0 :(得分:1)

我已经尝试过您的代码,并且对于使用相同网址连续运行20次的代码来说,它工作得很好。

根据搜索字词和查询的​​频率,如果Google怀疑客户活动不正常,可能会拒绝提供您的请求。一些消息来源还指出,Google具有检测抓取的机制。如果您超出了一定数量的请求,Google甚至可能会阻止您的IP。有关更多信息,请参见以下链接: