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运行出现Notice : Use of undefined constant 的完美解决方案分享
Mar 05 PHP
php 判断是否是中文/英文/数字示例代码
Sep 30 PHP
php中的curl使用入门教程和常见用法实例
Apr 10 PHP
学习php开源项目的源码指南
Dec 21 PHP
常见PHP数据库解决方案分析介绍
Sep 24 PHP
php防止用户重复提交表单
Nov 02 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
Mar 25 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
Feb 15 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 explode函数实例代码
2012/02/27 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
PHP链表操作简单示例
2016/10/15 PHP
php利用array_search与array_column实现二维数组查找
2019/07/08 PHP
动态添加js事件实现代码
2009/03/12 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
理解Python中的With语句
2016/03/18 Python
Python使用wxPython实现计算器
2018/01/30 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
庆八一活动方案
2014/01/25 职场文书
社区工作者个人总结
2015/02/28 职场文书
部队2015年终工作总结
2015/04/02 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL