在谷歌上批量搜索:403错误

时间:2014-02-19 17:01:44

标签: python google-api

我正在尝试批量搜索并查看字符串列表并打印谷歌搜索返回的第一个地址:

#!/usr/bin/python
import json
import urllib
import time
import pandas as pd

df = pd.read_csv("test.csv")
saved_column = df.Name #you can also use df['column_name']

for name in saved_column:
  query = urllib.urlencode({'q': name})
  url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % query
  search_response = urllib.urlopen(url)
  search_results = search_response.read()
  results = json.loads(search_results)
  data = results['responseData']

  address = data[u'results'][0][u'url']

  print address

我从服务器收到403错误: '疑似服务滥用条款。请参阅http://code.google.com/apis/errors',u'responseStatus':403

根据谷歌的服务条款,我正在做的是不允许的?

我也尝试将time.sleep(5)放在循环中但是我得到了同样的错误。

提前谢谢

2 个答案:

答案 0 :(得分:1)

Google TOS不允许。如果没有他们生气,你真的不能刮刮谷歌。它也是一个非常复杂的拦截器,所以你可以随机延迟一段时间,但它很快就失败了。

对不起,你在这个上运气不好。

答案 1 :(得分:1)

https://developers.google.com/errors/?csw=1

  

右侧显示的 Google搜索和语言API 已被正式弃用。

另外

  

我们收到了自动请求,例如抓取和预取。禁止自动请求;所有请求必须是最终用户操作的结果。