Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails中验证Googlebot_Ruby On Rails_Ruby On Rails 4_Google Crawlers - Fatal编程技术网

Ruby on rails 在Rails中验证Googlebot

Ruby on rails 在Rails中验证Googlebot,ruby-on-rails,ruby-on-rails-4,google-crawlers,Ruby On Rails,Ruby On Rails 4,Google Crawlers,我希望在rails应用程序中实现。谷歌有关于如何验证谷歌机器人是否正在查看你的网站的信息 我一直在搜索Rails是否有任何东西可以做到这一点,但我一直找不到任何东西。那么首先,有人知道什么吗?如果没有,有人能告诉我如何实施他们在那一页中提出的关于如何验证的建议的正确方向吗 而且,在这个解决方案中,它每次都要做一次查找来尝试检测google,如果我每次加载页面都要这样做的话,它的性能会受到很大的影响吗?我可以缓存IP,如果它在过去被验证过的话,但是谷歌已经声明他们的IP发生了变化,所以在某个时候它

我希望在rails应用程序中实现。谷歌有关于如何验证谷歌机器人是否正在查看你的网站的信息

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

而且,在这个解决方案中,它每次都要做一次查找来尝试检测google,如果我每次加载页面都要这样做的话,它的性能会受到很大的影响吗?我可以缓存IP,如果它在过去被验证过的话,但是谷歌已经声明他们的IP发生了变化,所以在某个时候它可能不再属于他们。虽然它可能不会经常发生,所以它可能不是一个大问题


非常感谢

查看浏览器gem:

我要做的就是使用

browser.bot?
方法来检查您的站点是否正在被bot访问。如果你特别关心谷歌机器人,你可以检查一下

browser.name

包括谷歌机器人。请记住,这个gem只是检查客户端浏览器发送的用户代理,当然这可能是伪造的。听起来这对你来说并不是什么大问题。

我最近为此构建了一个Ruby gem,名为“”

您可以通过使用了解Web请求是否来自受支持的bot

bot = Legitbot.bot(userAgent, ip)
“legitbot”通过查看
用户代理
和搜索机器人签名(即机器人如何识别自己)来实现这一点。这并不能保证Web请求IP确实来自Google机器人。要确定是这样,请致电

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

受支持的机器人有谷歌机器人、Yandex机器人、必应、百度、DuckDuckGo。

感谢您的回复。我确实认为这是一种选择,并且可能仍然放弃它,尽管正如你所说,有人可以欺骗用户代理,然后免费获取所有内容。我想这就是为什么谷歌建议在那篇文章中验证IP,这样你就可以确定了,但对我来说,这听起来是相当大的开销。这是有道理的。当然,只要使用代理服务器就很容易欺骗ip。如果你担心欺骗,最终让用户用经过验证的电子邮件创建实际帐户可能是最好的办法。@apod在这种情况下,机器人将无法索引付费内容,对吗?