我正在尝试使用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;
我已经尝试过你的代码,它可以很好地运行它连续20次使用相同的URL。
根据搜索字词和您执行查询的频率,如果Google怀疑客户活动不正常,则可能会拒绝提供您的请求。一些消息来源还表示谷歌有检测抓取机制。如果您超出了一定数量的请求,Google甚至可能阻止您的IP。有关更多信息,请参阅以下链接: