在Rails中验证Googlebot

时间:2016-02-04 12:58:35

标签: ruby-on-rails ruby-on-rails-4 google-crawlers

我希望在我的rails应用程序中实现First Click Free。 Google有关于如何验证googlebot是否正在查看您的网站here的信息。

我一直在寻找Rails是否有任何东西可以做到这一点,但我一直找不到任何东西。首先,有人知道吗?如果没有,是否有人能指出我如何实施他们在该页面中建议的关于如何验证的正确方向?

此外,在该解决方案中,每次尝试和检测谷歌时都必须进行查找,如果每次加载页面都需要这样做,那么它似乎会成为一个重大的性能影响?我可以缓存IP,如果它已经过去验证过,但谷歌已经声明他们的IP发生了变化,所以在某些时候它可能不再属于他们。虽然它可能不会经常发生,但它可能不是一个大问题。

非常感谢!!

2 个答案:

答案 0 :(得分:1)

查看浏览器gem:https://github.com/fnando/browser

我要做的是使用

browser.bot?

检查您的网站是否被机器人访问的方法。如果您特别关注Googlebot,可以查看是否

browser.name

包括googlebot。请记住,此gem只检查客户端浏览器发送的用户代理,当然这可能是欺骗性的。对你的目的而言,这听起来并不是一个很大的问题。

答案 1 :(得分:0)

我最近为它构建了一个Ruby gem,它被称为“legitbot”。

您可以使用

了解Web请求是否来自支持的bot
bot = Legitbot.bot(userAgent, ip)

“legitbot”会查看User-agent并搜索机器人签名,即机器人如何识别自己。这并不能保证Web请求IP真的来自例如Googlebot的。为了确保它,请致电

bot.detected_as # => "Google"
bot.valid? # => true
bot.fake? # => false

支持的机器人是Googlebot,Yandex机器人,Bing,百度,DuckDuckGo。