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
我的论坛源代码(十)
Oct 09 PHP
SMARTY学习手记
Jan 04 PHP
java EJB 加密与解密原理的一个例子
Jan 11 PHP
PHP安全配置详细说明
Sep 26 PHP
php url路由入门实例
Apr 23 PHP
PHP判断远程图片是否存在的几种方法
May 04 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
Feb 04 PHP
thinkphp3.2.3 分页代码分享
Jul 28 PHP
Yii2配置Nginx伪静态的方法
May 05 PHP
PHP面向对象程序设计重载(overloading)操作详解
Jun 13 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
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
PHP学习之字符串比较和查找
2011/04/17 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
JavaScript中reduce()方法的使用详解
2015/06/09 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
AngularJS实时获取并显示密码的方法
2018/02/06 Javascript
原生JS+HTML5实现跟随鼠标一起流动的粒子动画效果
2018/05/03 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
vue实现评价星星功能
2020/06/30 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
对python中的高效迭代器函数详解
2018/10/18 Python
Python模块的制作方法实例分析
2019/12/21 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
任命书怎么写
2015/03/02 职场文书
大学生求职信怎么写
2015/03/19 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
酒店温馨提示语
2015/07/14 职场文书
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android