我想用PHP来区分真人和机器人。我目前跟踪页面浏览量,由于机器人爬行我的页面,它们被大量膨胀,所以我只想记录真实的人。这并不重要,如果它不是100%准确,我只是想要一个很好的简单的方式,通过PHP来做。
需要明确的是,这不是为了分析本身;它是为了让我可以跟踪每天都有哪些图像被提供,这样我就可以生成一个“当天最受欢迎的图像”之类的脚本。
发布于 2010-08-25 04:11:32
你应该检查用户代理字符串,大多数行为良好的搜索机器人都会这样报告自己。
例如,Google's spider。
发布于 2010-08-25 05:36:33
首先,显而易见的是:检查用户代理。
我使用了另一个非常有效的技巧。我将robots.txt映射到一个PHP文件,并将IP登录到数据库中。然后,当记录用户活动时,我确保它们不是来自这些记录的IP之一。如果用户通过登录系统进行身份验证,那么我无论如何都会跟踪他们。
当然,这两种解决方案都不能保证准确性,但是对于一般的日志记录,它已经足够满足我的目的了。
发布于 2010-08-25 04:15:02
我不确定PHP是否是解决这类问题的最佳方案。
你可以阅读How to block bad bots和How to block spambots, ban spybots, and tell unwanted robots to go to hell来了解更多关于拦截机器人的解决方案,但这一次是使用apache。
与php程序相比,Apache的运行速度更快,执行这类任务所需的CPU更少。
https://stackoverflow.com/questions/3560613
复制相似问题