PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径

2015-01-24信息快讯网

这篇文章主要介绍了PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径,可以对每个搜索引擎单独统计,需要的朋友可以参考下

我在服务器上有每天切割nginx日志的习惯,所以针对每天各大搜索引擎来访,总能记录一些404页面信息,传统上我只是偶尔分析下日志,但是对于很多日志信息的朋友,人工来筛选可能不是一件容易的事情,这不我个人自己慢慢研究了一点点,针对谷歌、百度、搜搜、360搜索、宜搜、搜狗、必应等搜索引擎的404访问生成为一个txt文本文件,直接上代码test.php。

<?php
//访问test.php?s=google
$domain='http://www.jb51.net';
$spiders=array('baidu'=>'Baiduspider','360'=>'360Spider',
'google'=>'Googlebot','soso'=>'Sosospider','sogou'=>
'Sogou web spider','easou'=>'EasouSpider','bing'=>'bingbot');
 
$path='/home/nginx/logs/'.date('Y/m/').(date('d')-1).'/access_www.txt';
 
$s=$_GET['s'];
 
if(!array_key_exists($s,$spiders)) die();
$spider=$spiders[$s];
 
$file=$s.'_'.date('ym').(date('d')-1).'.txt';
if(!file_exists($file)){
    $in=file_get_contents($path);
    $pattern='/GET (.*) HTTP\/1.1" 404.*'.$spider.'/';
    preg_match_all ( $pattern , $in , $matches );
    $out='';
    foreach($matches[1] as $k=>$v){
        $out.=$domain.$v."\r\n";
    }
    file_put_contents($file,$out);
}
 
$url=$domain.'/silian/'.$file;
echo $url;

好就这样了。没有什么高深的技术,只有动手写的过程。

thinkphp特殊标签用法概述
PHP中mysql_field_type()函数用法
thinkphp模板输出技巧汇总
php中mt_rand()随机数函数用法
thinkphp模板赋值与替换实例简述
thinkphp区间查询、统计查询与SQL直接查询实例分析
thinkphp普通查询与表达式查询实例分析
php中ob_get_length缓冲与获取缓冲长度实例
php管理nginx虚拟主机shell脚本实例
php实现的ping端口函数实例
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
php实现singleton()单例模式实例
如何让搜索引擎抓取AJAX内容解决方案
ThinkPHP让分页保持搜索状态的方法
PHP把数字转成人民币大写的函数分享
PHP把JPEG图片转换成Progressive JPEG的方法
PHP把小数转成整数3种方法
php 无限级分类,超级简单的无限级分类,支持输出树状图
php防止伪造的数据从URL提交方法
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
ThinkPHP模板自定义标签使用方法
ThinkPHP调用百度翻译类实现在线翻译
使用ThinkPHP+Uploadify实现图片上传功能
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
Thinkphp使用mongodb数据库实现多条件查询方法
destoon设置自定义搜索的方法
destoon网站转移服务器后搜索汉字出现乱码的解决方法
php使用百度ping服务代码实例
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
php调用nginx的mod_zip模块打包ZIP文件
PHP、Nginx、Apache中禁止网页被iframe引用的方法
php实现按文件名搜索文件的远程文件查找器
php实现的百度搜索某地天气的小偷代码
使用php记录用户通过搜索引擎进网站的关键词
©2014-2024 dbsqp.com