检测是不是真正的浏览器或任何机器人或爬虫

Posted

技术标签:

【中文标题】检测是不是真正的浏览器或任何机器人或爬虫【英文标题】:detect if real browser or any bot or crawler检测是否真正的浏览器或任何机器人或爬虫 【发布时间】:2016-07-25 07:32:49 【问题描述】:

大家好,我设置了一个函数来获取用户第一次访问我的网站时的国家,这要归功于 jQuery 中的 cookie 和 ajax,这个函数需要大约 800 毫秒,这提供了错误的页面速度统计信息。 我做了一些研究,但没有找到仅在真正的访问者访问网站而不是任何爬虫时才执行此功能的方法... 我已经检查了modernizr,但他们不提供告诉用户代理的可能性。我还阅读了有关 $.browser() 的信息,但听说它已被弃用... 您知道如何实现这一目标吗? 非常感谢

【问题讨论】:

developer.mozilla.org/es/docs/Web/API/NavigatorID/userAgent 但是userAgent并不能保证给你真正的浏览器,因为你可以自己编辑userAgent。所有这些功能都已弃用,因为最好针对功能而不是浏览器。 感谢 Marcos 的快速回复 :) 实际上我已经检查了该链接,并且想要一些不被弃用的东西。如果我只想知道访问该网站的是机器人还是爬虫怎么办?没有简单的方法吗? Detect Search Crawlers via javascript的可能重复 那篇文章解决了你的问题。祝你好运!! :) 这些解决方案似乎很复杂且不可靠:/ 是否有任何可以使用modernizr 检查的特定功能在机器人/爬虫中不存在? 【参考方案1】:

你找到管理它的方法了吗?

请注意,“用户代理字符串变得毫无意义且极其不可靠”* 如 here 所述。

你也可以查看这个库:https://github.com/faisalman/ua-parser-js

有一些有趣的功能请求:

Feature request: isBrowser

Feature request: detect crawler

【讨论】:

嘿@charlesdg,对不起,我刚刚看到你的消息。不,我没有管理它,我最终放弃了 :) 但非常感谢您的链接,我会看看它;)干杯

以上是关于检测是不是真正的浏览器或任何机器人或爬虫的主要内容,如果未能解决你的问题,请参考以下文章

浏览器判断ios是不是连接wifi

检测是不是在所有浏览器中都打开了控制台/开发工具

如何在javascript中检测浏览器选项卡是不是关闭或浏览器窗口

php函数检测该网站是不是在手机或计算机浏览器中打开[重复]

使用 javascript 或 jQuery 检测用户是不是拒绝浏览器定位计算机的请求

爬虫的总结 私人日志