我在页面上运行了一些JS,弹出一个模态本地化选择框。我想防止机器人/爬虫发生这种情况。有没有办法使用Modernizr和/或yepnope.js?
答案 0 :(得分:1)
大多数机器人根本不会运行任何Javascript代码。他们将下载您的代码并检查它以查看它的功能或内容,或者特定机器人的功能,但它们通常不需要实际运行任何JS代码来执行此操作。
那些运行JS代码的人将在一个不同于bot的环境中这样做。有些可能会模拟浏览器环境,有些可能会在实际的浏览器中运行。但是如果不知道你可能遇到的所有机器人的内脏,你真的无法使用像Modernizr这样的工具来解决它。
在查看最终用户的浏览器时,浏览器检测被认为是一件坏事,功能检测(即Modernizr)被认为是更好的解决方案。
然而,当涉及到机器人时,规则会发生变化,因为我上面已经讨论了这些因素,并且基于用户代理字符串对它们进行检测确实变得合法。
任何合法的机器人都会提供一个UA字符串来识别自己,并且应该很容易识别。
如果机器人没有提供可识别的UA字符串,那么它就不是一个合法的机器人,所以你没有理由给它任何特殊的处理方法来让生活更轻松。