我使用以下python脚本从python中抓取谷歌学者:
import urllib
filehandle = urllib.urlopen('http://www.techyupdates.blogspot.com')
for lines in filehandle.readlines():
print lines
filehandle.close()
但我反复这样做,所以我被网站谷歌学者说:
当Google自动检测到来自您的计算机网络的请求似乎违反Terms of Service时,会显示此页面。该阻止将在这些请求停止后不久到期。在此期间,解决....
有一种简单的方法可以避免这种情况吗?有什么建议吗?
答案 0 :(得分:4)
[编辑]
对您的脚本进行某种限制,以便轻轻加载Google学术搜索(例如,在查询之间等待60秒或600秒或6000秒)。
我的意思是轻微加载Google学术搜索。如果可以缓存Google学术搜索结果,那么也会减少Google学术搜索的负载。
您还应该查看批处理,这样您就可以在一夜之间以稳定但缓慢的速度运行爬网。
目标是Google学术搜索不应该关心您的其他查询,从而实现ToS的精神,如果不是这封信。但如果你能够实现这两个目标,那将是正确的事情。
答案 1 :(得分:1)
在本地存储文件?如果需要HTTP连接,您还可以编写一个快速的Python Web服务器来提供文件。是的,我同意,阅读并试图理解错误信息也有帮助......