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 相关文章推荐
PHP4实际应用经验篇(4)
Oct 09 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
php判断并删除空目录及空子目录的方法
Feb 11 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
Feb 03 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
初识ThinkPHP控制器
Apr 07 PHP
Thinkphp批量更新数据的方法汇总
Jun 29 PHP
PHP 自动加载的简单实现(推荐)
Aug 12 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 PHP
在 Laravel 项目中使用 webpack-encore的方法
Jul 21 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递归删除目录几个代码实例
2014/04/21 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
PHP session 会话处理函数
2016/06/06 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
phpmyadmin下载、安装、配置教程
2017/05/16 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
JavaScript修改css样式style
2008/04/15 Javascript
Js 中debug方式
2010/02/07 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
jQuery自定义添加&quot;$&quot;与解决&quot;$&quot;冲突的方法
2015/01/19 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
AngularJS实现自定义指令及指令配置项的方法
2017/11/20 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
浅谈Angular 观察者模式理解
2018/11/01 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
git进行版本控制心得详谈
2017/12/10 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
Python创建一个元素都为0的列表实例
2019/11/28 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
HTML5使用Audio标签实现歌词同步的效果
2016/03/17 HTML / CSS
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
英国领先的维生素和营养补充剂直接供应商:Healthspan
2019/04/22 全球购物
班队活动设计方案
2014/01/30 职场文书
生产文员岗位职责
2014/04/05 职场文书
观后感的写法
2015/06/19 职场文书
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis