web搜索命中数



我有一组大约1000万大小的搜索查询。目标是收集搜索引擎为所有搜索结果返回的点击次数。例如,谷歌为查询";stackoverflow";。

问题是:

1-谷歌API限制为每天100次查询。这对我的任务用处不大,因为我必须得到很多计数。

2-我使用了必应API,但它没有返回准确的数字。Accureate是指与Bing UI中显示的点击次数相匹配。以前有人遇到过这个问题吗?

3-向搜索引擎发出搜索查询并解析html是一种解决方案,但它会导致CAPTCHA,并且不会扩展到这个查询数量。

我所关心的只是点击量,我愿意接受任何建议。

嗯,我真的希望有人能回答这个问题,因为这也是我感兴趣的事情,但由于看起来没有人会回答,我会提出这些建议。

你可以设置一系列代理,每100个请求更改一次IP,这样你就可以以看似不同的人的身份查询谷歌(似乎需要做很多工作)。或者你可以下载维基百科,写一些东西来解析那里的数据,这样当你搜索一个术语时,你就可以看到它包含了多少页面。当然,这是一个比整个网络小得多的数据集,但它应该让你开始。另一个可能的数据来源是谷歌n-grams数据,你可以下载并解析这些数据,看看搜索词包含多少本书和多少页。也许这些方法的组合可以提高任何给定搜索词的准确性。

当然,这些方法都不如直接获取谷歌页面计数好,但可以理解的是,这是他们不想免费提供的数据。

我知道这是一个非常古老的问题,但我试图做同样的事情,这让我来到了这里。我将添加一些信息和我迄今为止的进展:

首先,你得到的估计可能会发生巨大变化,是因为搜索引擎使用概率算法来计算相关性。这意味着在查询过程中,他们不需要检查所有可能的匹配,就可以以合理的置信度按相关性计算前N个命中。这意味着,当搜索结束时,对于一个大的结果集,搜索引擎实际上不知道点击总数。不过,它看到了一个有代表性的示例,可以使用一些关于查询中使用的术语的统计信息来设置可能的点击次数的上限。这就是为什么你只能得到大结果集的估计。以这样一种方式运行查询以获得确切的计数将是计算密集型的。

我所能达到的最好效果是通过欺骗搜索引擎来查看更多结果来完善估计。要做到这一点,你需要转到结果的第2页,然后修改URL中的"first"参数,使其更高。这样做可能会让你找到结果集的结尾(我相信这在去年对我有效,尽管今天只对最初的几千人有效)。即使它不允许您到达结果集的末尾,您也会看到,随着查询引擎考虑更多的命中,估计会变得更好。

我发现用上面的方法使用Bing稍微容易一些,但我仍然无法得到我正在考虑的网站的确切数量。谷歌似乎在积极阻止这种对其引擎的使用,这并不奇怪。Bing似乎也达到了极限,尽管它们看起来更像是缺陷。

对于我的用例,我能够使用上述技术使两个搜索引擎的估计值相当相似(Bing为148k,谷歌为149k)。我从谷歌获得的最高点击次数是323次,而Bing则上升到了700次——这两次都非常不准确,但并不奇怪,因为这不是他们对该产品的预期用途。

如果你想为自己的网站做这件事,你可以使用搜索引擎的网站管理员工具来查看索引页数。对于其他网站,我认为你需要使用搜索引擎API(需要一些成本)。

最新更新