【问题标题】:Is this visitor a bot or a user? PHP此访问者是机器人还是用户? 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 请求,因为我们的用户变得烦躁并且统计数据不准确。

【问题讨论】:

    标签: php bots web-crawler


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 使它成为公认的解决方案,因为它似乎是最好的方法,而且绝对是最好的答案,尽管我不认为它完全可靠。是的,我使用的索引应该是最近的,但是哦。
    猜你喜欢
    • 2012-12-31
    • 2016-06-27
    • 2014-07-14
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多