避免被Google Scholar封锁抓取
我用以下的Python脚本从Python抓取谷歌学术:
import urllib
filehandle = urllib.urlopen('http://www.techyupdates.blogspot.com')
for lines in filehandle.readlines():
print lines
filehandle.close()
但是我重复这样做,所以网站谷歌学术把我给封了,显示的信息是:
当谷歌自动检测到来自你电脑网络的请求,认为这些请求违反了服务条款时,就会出现这个页面。只要停止这些请求,封锁会很快解除。与此同时,解决....
有没有简单的方法可以避免这种情况?有什么建议吗?
2 个回答
1
把文件存到本地吗?你也可以快速写一个Python的网页服务器来提供这个文件,这样如果你需要HTTP连接的话就可以用了。还有,我也同意,阅读并尝试理解错误信息也是很有帮助的……
4
[编辑]
在你的脚本中加入一些限制,让你对Google Scholar的请求不要太频繁,比如在每次查询之间等待60秒、600秒或者6000秒。
我说的“轻负载”是指不要给Google Scholar带来太大的压力。如果能缓存Google Scholar的结果,那就能进一步减轻对它的负担。
你还可以考虑批量处理,这样你可以在晚上慢慢地进行抓取,保持一个稳定但较慢的速度。
目标是让Google Scholar对你的额外查询不在意,这样就能在一定程度上遵守服务条款的精神。如果你能同时做到这两点,那就是最好的做法。