【发布时间】:2012-01-05 04:26:12
【问题描述】:
我想使用 php 和 mysql 跟踪页面的所有视图。我将跟踪一个人查看页面的次数和 IP 地址以及当前日期。但是,有没有办法确保您跟踪实际用户而不是机器人/蜘蛛?
【问题讨论】:
-
我会使用 Google Analytics 或 Apache 日志分析器,如 awstats。您需要几个月的工作才能接近其中任何一个选项。
标签: php mysql statistics
我想使用 php 和 mysql 跟踪页面的所有视图。我将跟踪一个人查看页面的次数和 IP 地址以及当前日期。但是,有没有办法确保您跟踪实际用户而不是机器人/蜘蛛?
【问题讨论】:
标签: php mysql statistics
我看到的两个选项:
2:不是万无一失的方法,但您可以将浏览器的User Agent 字符串与已知网络浏览器的白名单进行比较。这个字符串可以被欺骗,所以它不是最可靠的。
就个人而言,我会选择第一个选项。
蜜罐:
在您的主页上,我会添加如下内容:
<a href="totallyNotATrap.php" style="Display:none">ReallyNotATrap</a>
在蜜罐页面本身上是这样的:
$BotIp=$_SERVER['REMOTE_ADDR'];
//DB connection
Insert into BlackList($BotIp,$Date,$otherDataYouCareAboutLogging);
//close DB Connection
然后,对于您的统计代码,只需将每个用户的 Ip 与黑名单表进行比较。如果用户不在上面,记录统计信息。
编辑
如下所述,googlebot 可能会被此欺骗。如果这对您很重要(如果您只是过滤自己的统计数据而不过滤内容,这无关紧要),请将您的蜜罐页面包含在您的 Robots.txt 中。谷歌将读取文本文件并避免陷阱。其他讨厌的机器人会落入其中。由于谷歌会避开我们的陷阱,我也会使用选项 2 并从统计信息中过滤掉谷歌的用户代理字符串。
【讨论】:
真实用户的数量应该与真实用户的数量基本相同 - 机器人。如果你愿意,你可以检查用户代理,它会告诉你谁在浏览这个网站。
【讨论】:
你可以试试我的跟踪脚本,它实现起来非常简单,机器人和蜘蛛会作为一个双层浏览器出现,所以很容易清除它们。我在我公司的所有网站上都使用它进行分析。不过有一个警告,如果您将其用于关键字跟踪,您可能很快就会失望,因为 Google 开始为登录用户提供change the structure of their query strings。
【讨论】: