【发布时间】:2014-06-11 23:35:48
【问题描述】:
每个月我都会运行我的脚本来下载 Google 趋势 CSV 文件以进行研究,并且我有大约 1000 个搜索词。我知道著名的“您已达到配额限制,请稍后再试”错误消息,因此我使用 Mechanize python 模块来提供 cookie。这是我的电话:
import mechanize # other imports omitted for simplicity
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
response = br.open('https://accounts.google.com/ServiceLogin?hl=en&continue=https://www.google.com/')
forms = mechanize.ParseResponse(response)
form = forms[0]
form['Email'] = username
form['Passwd'] = password
response = br.open(form.click())
Result = br.open("http://www.google.com/trends/trendsReport?q=SearchTerm&export=1")
CSVcontent = csv.reader(StringIO(Result.read()))
在我的实际脚本中,我有一个从 1 到 5 秒不等的睡眠时间规范。
但是,使用这些方法,我一次只能下载大约 350 个 CSV 文件。运行后,即使我在不同的 AWS 实例(不同的区域,使用相同的 Google 账户凭证)上重新运行我的脚本,我也只能在我的配额限制用完之前下载 2 个术语。
我还尝试在同一个实例上重新运行脚本,使用已使用但不同的 Google 凭据,但发生了同样的事情(仅限 2 次 CSV 下载)。
最糟糕的是,即使一个月后,我仍然每天只能下载 2 个带有 Google 凭据的 CSV 文件,这些凭据是我几个月前在脚本中使用的。
因此,我猜 Google 会同时监控 IP 地址级别和用户帐户级别的用户下载,并标记下载过多的帐户。
我的问题:
有没有人可以告诉我是否有付费服务或 API 那是免费的配额限制吗?
或者有没有办法绕过谷歌的监控(通过使用 Tor 或其他 方法)?但即使使用 Tor,我仍然需要 Google 帐户凭据 对吧?
有没有办法下载谷歌趋势数据而无需 用户名/密码(所以我可以使用 AWS 自动扩展,因为每个 IP 地址都可以 至少下载 2 个 CSV 文件)?
任何帮助和开箱即用的想法将不胜感激。
【问题讨论】:
标签: python amazon-web-services web-crawler