获取Google搜索结果的网站位置

时间:2012-03-14 12:21:49

标签: c# .net parsing html-agility-pack google-search

我想编写一些算法或解析器,它应该在谷歌搜索结果中获得站点位置。问题是每次谷歌页面布局都会改变我应该更正/更改算法。你怎么认为男人会经常改变?有关于确定Google网站位置的任何技巧/建议/窍门吗?

如何制作稳健的位置检测算法?

我想为此目的使用C#,.NET 2.0和HtmlAgilityPack。任何建议或建议将非常感谢。先谢谢你,伙计们!


POST UPDATE

我知道Google会显示验证码以防止机器查询。我得到了特殊的服务,这将识别任何验证码。你能告诉我你在精确刮擦结果方面的经验吗?

5 个答案:

答案 0 :(得分:2)

Google提供了大量的APIs来访问他们的服务。要搜索Custom Search API

答案 1 :(得分:1)

几个月前我们经历了这个过程。我们尝试了上面提到的API,结果与实际搜索结果不太接近。 (谷歌提供了大量信息)。

刮痧页面是一个问题,谷歌似乎每隔几个月就更换一次标记,并且如果你是否是人类,也会有适当的检查。

我们最终放弃了并购买了一套商用(并经常更新)套件。

答案 2 :(得分:1)

一年前我asked about this得到了一些好的答案。绝对是Agility Pack的出路。

最后,我们做了代码编写了一个粗略的刮刀,它完成了这项工作并且运行没有任何问题。我们相对轻松地打击谷歌(每天大约25个查询)。我们采取了随机预防措施1)订单和2)时间和3)查询之间暂停的时间。我不知道是否有任何帮助,但我们从来没有被验证码击中。

我们现在不打扰它了。

其主要弱点是:

  • 我们只打算查看第一页(我们可能已经编写了一个增强版本,该版本查看了前X页,但可能会有更高的风险 - 就谷歌被检测而言)。 / p>

  • 其结果不可靠并且跳了起来。你可以连续几周每周排名第8,除了你第3次随机的一天。也许......仔细阅读每日或每周阅读并记录我们的排名的整个想法太缺陷了

要回答有关Google破坏您的代码的问题:Google在我们运行它的所有月份都没有进行根本性的改变,但是他们改变了某些这打破了我们节省的“快照”结果(可能是CSS改变?)没有提高结果的可信度。

答案 3 :(得分:1)

我已就此编写了几个项目,解析了有机结果和adwords结果。 HTML Agility Pack绝对是您的最佳选择。

我认为每隔3分钟就会运行一次查询,并且从未触发过CAPTCHA。

关于格式化更改,我接受了UL的ID(从内存中说话),并且只在一年左右更改一次(有机和adwords)。

如上所述,谷歌并不是真的喜欢你这样做! : - )

答案 4 :(得分:-1)

我很确定您无法轻松访问Google搜索结果。他们不断试图阻止人们这样做。

如果考虑屏幕抓取 - 请注意他们将开始显示验证码,否则您将无法获得任何内容。