相信许多的站长、博主可能最关心的无非就是自己网站的收录情况,一般情况下我们可以通过查看空间服务器的日志文件来查看搜索引擎到底爬取了我们哪些个页面,不过,本人觉得很抽象,所以我就改了一下同事给我的一个爬行记录的程序,是比较好又比较直观方便操作的!可以获取到爬虫的ip,关键是记录下他访问的路径!
以前的这个程序不能使用,不过我做了一下改动,可以获取爬虫的ip,记录下他访问的路径和时间,并且可以筛选,优化了一下清空表记录!感觉还是很不错,原理是什么呢?就是每个访客访问一个网站的时候都是会带有头信息的,蜘蛛和爬虫其实也是访客,只不过他们会抓取你网页的内容。我们就通过php来获取他的头信息就可以了。
核心代码:
[php] view plaincopy
include_once 'config.php';
@$ax_ym=$_SERVER['REQUEST_URI'];
@$ax_ss=$_SERVER['HTTP_USER_AGENT'];
@$ax_url=$_SERVER['HTTP_REFERER'];
@$ax_ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
if(empty($ax_ip)){
@$ax_ip=$_SERVER['REMOTE_ADDR'];
} (PS:^_^不错的php开发交流群:276167802,验证:csl,谢谢!)
@$ax_date=date("Y-m-d");
@$ax_time=date("H:i:s");
$baidu=stristr($ax_ss,"Baiduspider");
$google=stristr($ax_ss,"Googlebot");
$soso=stristr($ax_ss,"Sosospider");
$youdao=stristr($ax_ss,"YoudaoBot");
$bing=stristr($ax_ss,"bingbot");
$sogou=stristr($ax_ss,"Sogou web spider");
$yahoo=stristr($ax_ss,"Yahoo! Slurp");
$Alexa=stristr($ax_ss,"Alexa");
$so=stristr($ax_ss,"360Spider");
if($baidu)
{
$ax_ss="baidu";
}
elseif($google)
{
$ax_ss="Google";
}
elseif($soso)
{
$ax_ss="soso";
}
elseif($youdao)
{
$ax_ss="youdao";
}
elseif($bing)
{
$ax_ss="bing";
}
elseif($sogou)
{
$ax_ss="sogou";
}
elseif($yahoo)
{
$ax_ss="yahoo";
}
elseif($Alexa)
{
$ax_ss="Alexa";
}
elseif($so)
{
$ax_ss="so";
}
else
{
$ax_ss=null;
}
if($baidu or $google or $soso or $youdao or $bing or $sogou or $yahoo or $Alexa or $so)
{
$zzsql="insert into robots (robotsname,robotspage,oldurl,robotsip,riqi,shijian) values ('$ax_ss','$ax_ym','$ax_url','$ax_ip','$ax_date','$ax_time')";
$exeok=mysql_query($zzsql,$conn);
}
?>
安装的时候
执行
http://您的域名/zhizhu/install
填写相应的配置信息即可自动完成安装
调用
在需要统计的PHP页面加入如下代码即可
[php] view plaincopy
如果你要想在静态页面调用,可以用也是可以的,js也是可以引入php的
以上是本文关于php 捕捉各大搜索引擎的蜘蛛、爬虫的iP和访问途径的详解,希望本文对广大php开发者有所帮助,感谢阅读本文。
阅读(1269) | 评论(0) | 转发(0) |