2014-02-19 57 views
0

我试图做批量搜索,去了字符串列表和打印第一地址,谷歌搜索返回:批次在谷歌搜索:403错误

#!/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)放在循环中,但我得到了同样的错误。

预先感谢您

回答

1

不是由谷歌允许TOS。没有他们生气,你真的不能刮谷歌。它也是一个非常复杂的阻止程序,所以你可以随时随地延迟一段时间,但它很快就会失败。

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

1

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

右图所示的谷歌搜索和语言的API已被正式弃用。

而且

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