PHP:区分人类用户和机器人/其他人

时间:2010-08-24 20:10:17

标签: php tracking

我希望使用PHP来区分实际人和机器人。我目前正在跟踪页面浏览量,并且由于机器人抓取我的页面而导致它们大量膨胀,所以我只想记录真人。如果它不是100%准确无关紧要我只想要一个很好的简单方法来通过PHP来实现它。

要明确的是,这不适用于分析本身;这样我就可以跟踪每天提供的图像,这样我就可以制作出“当天最佳图像”的脚本。

3 个答案:

答案 0 :(得分:3)

您应该检查用户代理字符串,大多数表现良好的搜索机器人都会自行报告。

例如

Google's spider

答案 1 :(得分:1)

首先,显而易见:检查用户代理。

我使用另一个效果很好的技巧。我将robots.txt映射到PHP文件并将IP记录到数据库中。然后,在记录用户活动时,我确保它们不是来自其中一个已记录的IP。如果用户通过登录系统进行身份验证,则无论如何都会跟踪它们。

当然,这两种解决方案都不能保证任何准确性,但对于一般的日志记录,它已经足够我的目的了。

答案 2 :(得分:0)

我不确定PHP是解决此类问题的最佳解决方案 您可以阅读How to block bad botsHow to block spambots, ban spybots, and tell unwanted robots to go to hell以查看有关阻止僵尸程序的更多解决方案,但这次是使用apache。

Apache将比php程序更快地执行此类任务所需的CPU更少。

相关问题