default
menu home
Icon library Sign up Login favorite_border message help_outline
Online notes - online bookmark

网站的页面访问量以及搜索引擎爬虫访问量的统计方法

styleTags: All CSS html javascript php/other IT
by: fanshome  2023-05-23 15:54(UTC)

统计页面访问量的方法有无数种,这里介绍我的“低级”方法:

1、当然是先用数据库建立一张访问统计表,每个需要统计的页面单独需要建一个字段,比如首页就用“index”。

2、区分是否是移动终端访问,这个其实是有难度的,不可能100%精确统计,我们就退而求其次,大概能统计到位就行,采用正则判断User Agent的方法:

$MOBILE=preg_match("/(android|mobi|phone)/i",$_SERVER['HTTP_USER_AGENT'])?true:false;

这个方法肯定不够精确,只能说大致够用,包含了"android"、"MOBI”、"mobile"、"phone"、"iphone”等关键字,基本OK吧。

3、定义需要统计的页面,用一个数组:

$botsArr=array(//常用搜索引擎爬虫识别

["baidu" ,"Baiduspider"],//百度爬虫

["google","Googlebot"],//谷歌爬虫

["bing" ,"bing"],//微软bing爬虫

["360" ,"360Spider"],//360搜索so.som爬虫

["sogou" ,"sogou"],//搜狗搜索爬虫

["yandex","yandex"],//yandex爬虫

["junkBot","(MJ12bot|AhrefsBot)"],//垃圾蜘蛛爬虫

["otherBot" ,"(bot|spider)"]//其它明确标志自己的爬虫

);

其中,每个数组下标0代表爬虫名字,下标1代表爬虫的USER_AGENT必须包含的关键字,基本做到了简单并且够用。

for($i=0;$i<count($botsArr);$i++){

if(preg_match("/".$botsArr[$i][1]."/i",$_SERVER['HTTP_USER_AGENT'])){

$isBot=true;//是个爬虫

//执行sql,数据库插入统计记录;

...

$i++;

break;

}

}

再定义一个数组,包含所有需要统计的页面文件名称:

$statItem=array("文件名1","文件名2",...);

if(in_array($filename,$statItem)){

//执行SQL语句

//数据库插入统计记录

}

visibility 945


- for heavy web user Online notes
adimg
logo Post a comment

captcha
Please check the captcha code
Cancel