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


Posted in PHP onJune 30, 2014

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

<?php

//访问test.php?s=google

$domain='https://3water.com';

$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;

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

PHP 相关文章推荐
如何获得PHP相关资料
Oct 09 PHP
php基础知识:类与对象(2) 自动加载对象
Dec 13 PHP
php Http_Template_IT类库进行模板替换
Mar 19 PHP
PHP IPV6正则表达式验证代码
Feb 16 PHP
Yii调试SQL的常用方法
Jul 09 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
PHP调用接口用post方法传送json数据的实例
May 31 PHP
利用PHP如何统计Nginx日志的User Agent数据
Mar 06 PHP
PHP迭代器和生成器用法实例分析
Sep 28 PHP
PHP使用Http Post请求发送Json对象数据代码解析
Jul 16 PHP
PHP dirname(__FILE__)原理及用法解析
Oct 28 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
Jun 30 #PHP
PHP把小数转成整数3种方法
Jun 30 #PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
Jun 29 #PHP
php防止伪造的数据从URL提交方法
Jun 27 #PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
Jun 27 #PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
Jun 27 #PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 #PHP
You might like
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
浅谈Vue.js
2017/03/02 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
python文件和目录操作函数小结
2014/07/11 Python
Python中使用dom模块生成XML文件示例
2015/04/05 Python
详解在Python和IPython中使用Docker
2015/04/28 Python
理解python正则表达式
2016/01/15 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
python将unicode和str互相转化的实现
2020/05/11 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
python使用建议技巧分享(三)
2020/08/18 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
C++面试题:关于链表和指针
2013/06/05 面试题
交通安全教育制度
2014/02/02 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
幼儿园家长寄语
2014/04/02 职场文书
我的小天地教学反思
2014/04/30 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
服务员岗位职责
2015/02/03 职场文书
python基础之//、/与%的区别详解
2022/06/10 Python