由于用户代理标头可以由机器人操纵,因此检查用户代理不是区分机器人和真实设备(即浏览器或应用程序)的正确选择。
有没有一种可靠的方法来区分机器人和设备,或者我们必须忍受它?
我认为基本上你不能,不管怎么说都不高。
一个显而易见的方法是使用验证码验证您的操作员可能是人。这些对于实际的人来说很烦人。
或者在javascript中设置一些cookie,虽然这也很容易规避。
如果做不到这一点,可以查看连续请求之间的时间差异。如果它们相差几毫秒,那肯定是机器人。
在页面上建立一个不可见的链接(通过操纵颜色),如果有链接的蜘蛛,你可以确定你有一个机器人,或者至少是一个好奇的人。