我看到了一些有关我的问题的问题,但没有具体答案。简而言之,我有一个更大的单词列表(超过1000个),并且我想获取每个单词的Google匹配数。特别是,我在Stackoverflow: Google search to retrieve number of results for search keywords处读取了此踏步。但是如何处理大型清单的问题仍然悬而未决。拜托,如果有人能抛出一段我可以玩并构建脚本的Python代码,我将非常感谢。
如果Google拒绝了您的请求,您可以尝试抓取搜索结果页面...
我强烈建议not这样做,尤其是当您要处理大量单词时。但是,出于
instructive的目的,这是通常适合您的代码:
import urllib2 import re def results(word): text = urllib2.urlopen('http://www.google.com/search?q=%s'%word).read() m = re.search('About ([0-9,]+) results', text) if m is None: return None else: return int(m.group(1).replace(',', '')) # remove commas and int-ify
我之所以说“通常”,是因为在测试中,我收到了Google的礼貌要求,而不是搜索结果页:403。这是一个错误。
您的客户端无权从此服务器获取URL/search?q=foo
。[通过确定请求标头中的
[另一个考虑因素是,xkcd成名的Randall Munroe建议页面上的点击数非常不准确:http://blog.xkcd.com/2011/02/04/trochee-chart/User-Agent
,我确定Google知道拒绝我的请求。欺骗User-Agent
很简单,并使此代码正常工作,但是请不要这样做。