此访问者是机器人还是用户? PHP

Posted

技术标签:

【中文标题】此访问者是机器人还是用户? PHP【英文标题】:Is this visitor a bot or a user? PHP 【发布时间】:2011-02-24 13:06:27 【问题描述】:

我正在使用谷歌分析(或任何其他)可以为我提供的特殊功能进行自己的访问者跟踪,因为它是定制的。我在脚本接近尾声时调用了这个函数,但很快就遇到了我们的客户,他们遇到了数千个被机器人调用的页面(我假设是谷歌),我的表在一段时间内填满了大约 1,000,000 条无用和欺骗性的记录月。

大多数人使用的方法是他们在页面底部使用 javascript,机器人不操作 javascript,所以这是一个简单的解决方法 -- 但我正在寻找 php 解决方案。

我做的最后一件事是使用PHP的get_browser

http://us2.php.net/manual/en/function.get-browser.php

并检查crawler 方面。这不起作用。

我看过这篇文章: Stopping scripters from slamming your website hundreds of times a second

但主要的解决方案是做一些类似于 SO 的事情,它会提出一个验证码。我的意思不是阻止机器人——我希望页面被抓取。我只是不想在访客在那里时发送他们的跟踪数据。

我现在切换到 Javascript 解决方案,执行 AJAX 请求,因为我们的用户变得烦躁并且统计数据不准确。

【问题讨论】:

【参考方案1】:

我以前从未使用过该功能 - 很有趣。

现在,所有主要搜索引擎都将使用不同的 User-Agent 标头声明自己,我假设此函数从中获取大部分信息 - 它可能将 User-Agent 值与查找表匹配,并且可能是没有正确识别较新的索引器。

您可以编写自己的列表,并针对它测试 $_SERVER['HTTP_USER_AGENT'] 超全局 - 但您必须监控更新。

它也不会阻止不良或恶意索引器,因为它们倾向于将自己伪装成普通浏览器(就像来自客户端的任何其他标头一样,User-Agent 不可信)。

【讨论】:

使它成为公认的解决方案,因为它似乎是最好的方法,而且绝对是最好的答案,尽管我不认为它完全可靠。是的,我使用的索引应该是最近的,但是哦。

以上是关于此访问者是机器人还是用户? PHP的主要内容,如果未能解决你的问题,请参考以下文章

PHP获取访问用户机器码(物理地址)

网站程序怎么判断是访客还是蜘蛛在访问?

如何用php识别机器人?

如何访问网络计算机另一用户名下的共享文件夹?

session与cookies

php curl 使用 cloudflare 2021 访问网站