Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我如何在不跟踪机器人的情况下跟踪传出链接点击?_Php_Javascript_Web Analytics - Fatal编程技术网

Php 我如何在不跟踪机器人的情况下跟踪传出链接点击?

Php 我如何在不跟踪机器人的情况下跟踪传出链接点击?,php,javascript,web-analytics,Php,Javascript,Web Analytics,对此我有一些想法,但我可以看出两者都有问题。我不需要100%准确的数据。一个80%的解决方案可以让我对最流行的领域进行概括,我将用户路由到这些领域 选项1-使用PHP。通过文件track.php路由链接,确保在跟踪单击之前引用的页面来自我的域。然后,此页面将用户路由到最终的预期URL。显然,机器人可以欺骗这个。有很多吗?我还可以检查用户代理。再说一次,我知道很多机器人都在恶搞这个 选项2-使用JavaScript。执行JavaScript on click函数,将单击写入数据库,然后将用户指向最

对此我有一些想法,但我可以看出两者都有问题。我不需要100%准确的数据。一个80%的解决方案可以让我对最流行的领域进行概括,我将用户路由到这些领域

选项1-使用PHP。通过文件
track.php
路由链接,确保在跟踪单击之前引用的页面来自我的域。然后,此页面将用户路由到最终的预期URL。显然,机器人可以欺骗这个。有很多吗?我还可以检查用户代理。再说一次,我知道很多机器人都在恶搞这个

选项2-使用JavaScript。执行JavaScript on click函数,将单击写入数据库,然后将用户指向最终URL


这两种方法都让我觉得它们可能会导致跟踪我的传出链接的爬虫出现问题。跟踪这些外发点击的最有效方法是什么?

跟踪外发链接(Facebook、Twitter和几乎所有搜索引擎都使用)的最有效方法是“
track.php
”类型的文件

检测机器人可以被视为一个单独的问题,这些问题很好地涵盖了这些方法:但在用户代理中对“机器人”进行简单的字符串搜索可能会使您接近80%*(并且根据您正在处理的机器人的类型,观察对
/robots.txt
的点击将使您获得95%*)


*:一个半教育式的猜测,基于零具体数据,谷歌分析和Piwik使用Javascript实现

因为机器人不能使用JS,所以只有人类。另一方面,人类也可以禁用JS(但真诚地说,这种情况很少发生)

Facebook、Deviantart、WLM等使用服务器端脚本进行跟踪。我不知道他们是如何过滤机器人的,但是一个很好的robots.txt,有一个或两个过滤器,我想这应该足够好,可以得到80%的回报