获取Google点击次数以获取更大的单词列表

时间:2011-05-17 18:35:58

标签: python search

我看到了一些与我的问题相关的问题,但没有具体的答案。简而言之,我有一个更大的单词列表(超过1000个),我想获得每个单词的Google点击次数。 特别是,我在Stackoverflow: Google search to retrieve number of results for search keywords阅读了这篇文章。但是如何处理大型清单的问题仍然存在。 拜托,我真的很感激,如果有人能够编写一些Python代码,我可以播放并构建脚本。

2 个答案:

答案 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 个单词。 也就是说,例如,他们不会询问谷歌,而是获取所有可用的电影字幕并运行一个简单的算法。 中文最难的任务是确定“词”是什么,因为它是一个不断变化的模糊概念。我想在大多数其他主要语言中,它必须更容易。