避免使用Google学术搜索块进行抓取

时间:2013-01-25 20:39:45

标签: python web-crawler

我使用以下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时,会显示此页面。该阻止将在这些请求停止后不久到期。在此期间,解决....

有一种简单的方法可以避免这种情况吗?有什么建议吗?

2 个答案:

答案 0 :(得分:4)

[编辑]

对您的脚本进行某种限制,以便轻轻加载Google学术搜索(例如,在查询之间等待60秒或600秒或6000秒)。

我的意思是轻微加载Google学术搜索。如果可以缓存Google学术搜索结果,那么也会减少Google学术搜索的负载。

您还应该查看批处理,这样您就可以在一夜之间以稳定但缓慢的速度运行爬网。

目标是Google学术搜索不应该关心您的其他查询,从而实现ToS的精神,如果不是这封信。但如果你能够实现这两个目标,那将是正确的事情。

答案 1 :(得分:1)

在本地存储文件?如果需要HTTP连接,您还可以编写一个快速的Python Web服务器来提供文件。是的,我同意,阅读并试图理解错误信息也有帮助......