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 相关文章推荐
第三节 定义一个类 [3]
Oct 09 PHP
PHP获取文件绝对路径的代码(上一级目录)
May 29 PHP
PHP字符串中特殊符号的过滤方法介绍
Feb 18 PHP
PHP中浮点数计算比较及取整不准确的解决方法
Jan 09 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
Oct 23 PHP
php实现中文转数字
Feb 18 PHP
PHP常用操作类之通信数据封装类的实现
Jul 16 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
PHP实现的超长文本分页显示功能示例
Jun 04 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
May 05 PHP
Laravel Reponse响应客户端示例详解
Sep 03 PHP
php去除deprecated的实例方法
Nov 17 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自动更新新闻DIY
2006/10/09 PHP
PHP学习笔记之数组篇
2011/06/28 PHP
深入PHP数据加密详解
2013/06/18 PHP
php中file_exists函数使用详解
2015/05/08 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
vue+layui实现select动态加载后台数据的例子
2019/09/20 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
js实现轮播图特效
2020/05/28 Javascript
详解vue 组件
2020/06/11 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
python脚本和网页有何区别
2020/07/02 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
毕业生找工作推荐信
2013/11/21 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
大学生村官承诺书
2014/03/28 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
校运会宣传稿大全
2015/07/23 职场文书
MySQL基础(一)
2021/04/05 MySQL
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技