我正在尝试进行批量搜索并浏览字符串列表并打印谷歌搜索返回的第一个地址:
#!/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) 放入循环中,但我得到了同样的错误。
提前谢谢你
Google TOS 不允许。你真的不能在不生气的情况下刮谷歌。它也是一个非常复杂的阻止程序,所以你可以用随机延迟来绕过一段时间,但它很快就会失败。
对不起,你运气不好。
https://developers.google.com/errors/?csw=1
右侧显示的 Google 搜索和语言 API 已正式弃用。
也
我们收到了自动请求,例如抓取和预提取。禁止自动请求;所有请求都必须作为最终用户操作的结果发出。