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编码规范之注释和文件结构说明
Jul 09 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
用php来改写404错误页让你的页面更友好
Jan 24 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
深入解析Session是否必须依赖Cookie
Aug 02 PHP
一个PHP的ZIP压缩类分享
May 04 PHP
PHP获取时间排除周六、周日的两个方法
Jun 30 PHP
分享自定义的几个PHP功能函数
Apr 15 PHP
PHP实现仿Google分页效果的分页函数
Jul 29 PHP
PHP简单遍历对象示例
Sep 28 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 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
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
javascript中onmouse事件在div中失效问题的解决方法
2012/01/09 Javascript
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
React 组件间的通信示例
2018/06/14 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
python根据出生年份简单计算生肖的方法
2015/03/27 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
python中subprocess批量执行linux命令
2018/04/27 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
2019/09/23 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
厨师岗位职责
2013/11/12 职场文书
自我推荐书
2013/12/04 职场文书
函授本科自我鉴定
2014/02/04 职场文书
学生喝酒检讨书
2014/02/06 职场文书
合作经营协议书
2014/04/17 职场文书
汉字听写大会观后感
2015/06/12 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL