我想编写一些算法或解析器,它应该在谷歌搜索结果中获得站点位置。问题是每次谷歌页面布局都会改变我应该更正/更改算法。你怎么认为男人会经常改变?有关于确定Google网站位置的任何技巧/建议/窍门吗?
如何制作稳健的位置检测算法?
我想为此目的使用C#,.NET 2.0和HtmlAgilityPack。任何建议或建议将非常感谢。先谢谢你,伙计们!
POST UPDATE
我知道Google会显示验证码以防止机器查询。我得到了特殊的服务,这将识别任何验证码。你能告诉我你在精确刮擦结果方面的经验吗?
答案 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搜索结果。他们不断试图阻止人们这样做。
如果考虑屏幕抓取 - 请注意他们将开始显示验证码,否则您将无法获得任何内容。