2014-10-29 121 views
1

我想寫一個Python 3功能的工作原理如下所示:如何使用Python 3獲得Google搜索結果?

links = google_search('"done" "store"') 
for l in links: print(l) 

輸出應該是一個很長的名單,是這樣的:

www.cnn.com/articles/done_with_sotres.html 
www.something.org/whatever?p=bla 
. 
. 
. 

我發現了這個建議,Google Search from a Python App,但我似乎只有4個網站在「點擊」中,而我不確定如何獲得其餘。 任何建議將不勝感激!

編輯:愚蠢的我!我沒有把實施。無論如何,它在鏈接中描述的一個:

def search(search_string): 
    query = urllib.parse.urlencode({'q': search_string}) 
    url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % query 
    search_response = urllib.request.urlopen(url) 
    search_results = search_response.read().decode("utf8") 
    results = json.loads(search_results) 
    data = results['responseData'] 
    print('Total results: %s' % data['cursor']['estimatedResultCount']) 
    hits = data['results'] 
    print('Top %d hits:' % len(hits)) 
    for h in hits: print(' ', h['url']) 
    print('For more results, see %s' % data['cursor']['moreResultsUrl']) 
    return hits 
+0

這似乎是這個問題是在你的'google_search'方法,但是你沒有提供它的實現。它使任何形式的確定都無法回答你的問題。 – maksimov 2014-10-30 00:51:39

+0

我的不好。我添加了它。坦克! – UriCS 2014-10-30 01:47:19

回答

5

可以從該API來獲得結果的最大數是8個結果用於每個查詢。

可以通過添加一個「& RSZ =大」的網址得到它:

url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s&rsz=large' % query  

還有另一種有用的說法「開始=」它讓你在結果集中移動。 因此,基本上你可以循環,你可以問第一塊8結果,第二塊等(開始= 1,開始= 8等)。

url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&%s&start=%d' % (query, i)  

在任何情況下,請注意,這個API已被棄用(https://developers.google.com/web-search/docs/