Google搜索结果抓取会导致“服务不可用”错误

问题描述 投票:1回答:1

我正在尝试使用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;
node.js web-scraping google-search
1个回答
1
投票

我已经尝试过你的代码,它可以很好地运行它连续20次使用相同的URL。

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

© www.soinside.com 2019 - 2024. All rights reserved.