Search 网页搜索点击次数

Search 网页搜索点击次数,search,asp.net-web-api,web-statistics,Search,Asp.net Web Api,Web Statistics,我有一组大约1000万的搜索查询。目标是收集搜索引擎返回的所有搜索结果的点击数。例如,Google为查询“stackoverflow”返回了大约47500000个 问题在于: 1-谷歌API限制为每天100次查询。这对我的任务远没有用处,因为我必须得到很多计数 2-我使用了Bing API,但它没有返回准确的数字。在匹配Bing UI中显示的点击数的意义上,AccuCreate。以前有人遇到过这个问题吗 3-向搜索引擎发出搜索查询并解析html是一种解决方案,但它会生成CAPTCHA,并且不能扩

我有一组大约1000万的搜索查询。目标是收集搜索引擎返回的所有搜索结果的点击数。例如,Google为查询“stackoverflow”返回了大约47500000个

问题在于:

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

2-我使用了Bing API,但它没有返回准确的数字。在匹配Bing UI中显示的点击数的意义上,AccuCreate。以前有人遇到过这个问题吗

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


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

好吧,我真的希望有人能回答这个问题,因为这是我也很想知道的事情,但因为看起来没有人会,我会加入这些建议

您可以设置一系列代理,每100个请求更改一次他们的IP,这样您就可以作为看起来不同的人查询google(看起来需要做很多工作)。或者你可以写一些东西来解析那里的数据,这样当你搜索一个术语时,你可以看到它有多少页。当然,这是一个比整个网络小得多的数据集,但它应该让你开始。另一个可能的数据源是,您可以下载并解析它,以查看搜索词所属的书籍和页面数量。也许这些方法的组合可以提高任何给定搜索词的准确性


当然,这些方法中没有一种比直接获取谷歌页面计数更好,但可以理解的是,这是他们不想免费提供的数据。

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

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

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

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

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


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

我也对这一点感兴趣。。。只是想让你知道,任何大型搜索引擎都不会因为服务器之间的分片而总是返回相同的结果。换句话说,当流量不同时,在一个小时内运行相同的谷歌搜索,你可能会得到一个明显不同的数字,因为你访问了他们的另一台服务器,而这台服务器不是最新的。同时也要看看报纸,谢谢你的回答。我以前没有设置一系列代理和协调流量的经验。因此,我宁愿把这作为最后的选择之一。维基百科不是我任务的代表性数据集。我试过了,但没有用。我现在使用的是google n-grams数据,我更喜欢使用Microsoft数据集,它提供标题、正文和锚文本统计信息的访问。不过,微软数据的问题在于,它只返回概率,而不是简单的计数。再次感谢。您试图将这些数据用于什么类型的项目——即,正确的源文本类型是什么?如果你在寻找人们谈论的时事,不要忘记twitter和博客圈。(同样在StackOverflow上,当你发现答案有帮助时,请投赞成票或接受,因为这会增加回答者的声誉,他们可以利用这一声誉让其他人回答他们的问题)祝你好运