如何使用php识别机器人?

2022-08-30 21:50:21

我正在为我的用户构建统计数据,不希望机器人的访问被计算在内。

现在我有一个基本的php,每次调用页面时,mysql都会增加1。

但机器人也被添加到计数中。

有没有人能想出一种方法?

主要是那些把事情搞砸的主要因素。谷歌,雅虎,Msn等


答案 1

您可以检查用户代理字符串,空字符串或包含“机器人”,“蜘蛛”,“爬虫”,“卷曲”的字符串很可能是机器人。

preg_match('/robot|spider|crawler|curl|^$/i', $_SERVER['HTTP_USER_AGENT']));


答案 2

应按用户代理字符串进行筛选。您可以在此处找到机器人给出的大约300个常见用户代理的列表:http://www.robotstxt.org/db.html 在运行SQL语句之前浏览该列表并忽略机器人用户代理应该可以解决所有实际目的的问题。

如果您不希望搜索引擎甚至到达该页面,请使用基本的机器人.txt文件来阻止它们。


推荐