我看到了一些与我的问题相关的问题,但没有具体的答案。简而言之,我有一个更大的单词列表(超过1000个),我想获得每个单词的Google点击次数。 特别是,我在Stackoverflow: Google search to retrieve number of results for search keywords阅读了这篇文章。但是如何处理大型清单的问题仍然存在。 拜托,我真的很感激,如果有人能够编写一些Python代码,我可以播放并构建脚本。
答案 0 :(得分:1)
您可能会在上述问题上提及此评论:
如果Google拒绝您的请求,您可以尝试抓取搜索结果页...
我强烈建议不这样做,特别是如果你要处理大量的单词。但是,对于指导性目的,这是通常适合您的代码:
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。这是一个错误。
您的客户无权从此服务器获取网址/search?q=foo
。
我确定Google知道通过查看请求标头中的User-Agent
来拒绝我的请求。欺骗User-Agent
并使此代码正常工作很简单,但请不要这样做。
另一个考虑因素是xkcd成名的Randall Munroe建议页面上的点击数量非常不准确: http://blog.xkcd.com/2011/02/04/trochee-chart/
答案 1 :(得分:1)
如果我误解了您,请原谅我,您的问题似乎与 Python 无关,而是在特定领域(新闻、文学、网络聊天、科学等)中找到数十亿字的更新、准确的频率列表的迂回曲折……)。 由于软件和处理能力的提高,例如在中文中,有许多这样的频率列表,从特定领域的数百万个句子中排序约 100,000 个单词。 也就是说,例如,他们不会询问谷歌,而是获取所有可用的电影字幕并运行一个简单的算法。 中文最难的任务是确定“词”是什么,因为它是一个不断变化的模糊概念。我想在大多数其他主要语言中,它必须更容易。