我正在尝试编写一个类似于以下内容的Python 3函数:
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 :(得分:5)
每个查询可以从此api获得的最大结果数为8个结果。
你可以通过添加"& rsz = large"来获得它。到网址:
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s&rsz=large' % query
还有另一个有用的论点" start ="它允许您移动结果集。 所以基本上你可以循环你可以询问第一个块的8个结果,第二个块等等(start = 1,start = 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/)