如何用Python脚本获取谷歌搜索结果而不被识别为机器人?
我想把谷歌搜索结果的rss/xml数据导入到我的网站里,但每次运行我的Python脚本时,谷歌都会给我发消息:
我们的系统检测到你电脑网络上有异常流量。 这个页面在检查是不是你自己在发送请求,而不是机器人。
这个脚本用的是urllib来下载页面,其他的rss源都能正常工作。
这让我有点困惑,因为我以为rss源是应该被软件(机器人)使用的。我把脚本放了一整个周末不动,周一早上再运行,结果还是收到了这个消息,所以我并没有频繁地请求他们的服务器。
不过我可以在浏览器里加载这个数据源,也可以用wget在服务器上下载这个数据源?
1 个回答
3
你可以使用一些网络嗅探工具,比如Fiddler,或者其他协议嗅探工具,比如tcpdump或Wireshark,来监控你和Google之间的网络流量,看看你用urllib发出的请求和用wget或浏览器发出的请求有什么不同。同时,检查并比较这两种请求的所有Cookies和HTTP头信息。还有一点要记住,如果你的IP地址向Google发送了大量请求,Google会在每N次请求后发送验证码,所以如果你需要解析Google的内容,可能需要使用一些代理来帮助你。