【问题标题】:Getting number of Google hits for a larger list of words获取更大的单词列表的 Google 点击次数
【发布时间】:2011-05-17 18:35:58
【问题描述】:

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

【问题讨论】:

  • 这里不是“代码”的问题,而是你能不能说服google让你每天搜索100次以上的问题。代码保持不变。
  • Google 本身并没有准确的点击数,因为它计算量大,对搜索者来说并不重要。搜索结果页面中的数字只是一个估计值。
  • 感谢您的回答!但是,那么,该怎么办呢?我知道可以下载Wiki,然后搜索字符串,但我不需要它的英文,然后,词库不是那么大。我听说人们将 BING 用于类似目的,但我怀疑它是否会比 Google 更好——计数更准确。

标签: python search


【解决方案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. 这是一个错误。

您的客户端无权从该服务器获取 URL /search?q=foo

我通过查看请求标头中的 User-Agent 确定 Google 知道拒绝我的请求。欺骗User-Agent 并让这段代码正常工作很简单,但同样,请不要这样做。

另一个考虑因素是 xkcd 的 Randall Munroe 认为页面上的点击数非常不准确: http://blog.xkcd.com/2011/02/04/trochee-chart/

【讨论】:

  • 再次感谢您的回答!但是,如果我们需要一些字数统计,我们该怎么办? Wiki 对英语来说可能还不错,但对于一些“较小”的语言来说,词库并没有那么大。我听说人们将 BING 用于类似目的,但我怀疑它是否会比 Google 更好——计数更准确。
  • 不错的sn-p。 :) 我用 Bing 替换了 Google,得到了有用的结果,谢谢!
【解决方案2】:

如果我误解了你,请原谅我,你的问题似乎不是关于 Python,而是一个环形交叉路口,用于查找特定领域(新闻、文学、网络聊天、科学等)数十亿单词的更新、准确、频率列表...)。 由于软件和处理能力的提高,例如在中文中,有许多这样的频率列表,从特定领域的数百万个句子中分类出大约 100,000 个单词。 也就是说,例如,他们没有询问谷歌,而是获取所有可用的电影字幕并运行一个简单的算法。 中文最难的任务是确定一个“词”是什么,因为它是一个模糊的、不断变化的概念。我想在大多数其他主要语言中它一定更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2018-12-15
    • 2011-10-23
    • 2016-05-21
    相关资源
    最近更新 更多