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 相关文章推荐
apache+php+mysql安装配置方法小结
Aug 01 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
Nov 07 PHP
ThinkPHP令牌验证实例
Jun 18 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
Jul 08 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
PHP构造二叉树算法示例
Jun 21 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 PHP
php连接sftp的作用以及实例代码
Sep 23 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
Oct 10 PHP
Yii 框架控制器创建使用及控制器响应操作示例
Oct 14 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
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
smarty内置函数foreach用法实例
2015/01/22 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
零基础学Python(一)Python环境安装
2014/08/20 Python
python文件操作之目录遍历实例分析
2015/05/20 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
体育课课后反思
2014/04/24 职场文书
作风建设演讲稿
2014/05/23 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
大学生学生会工作总结2015
2015/05/26 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python