利用php抓取蜘蛛爬虫痕迹的示例代码


Posted in PHP onSeptember 30, 2016

前言

相信许多的站长、博主可能最关心的无非就是自己网站的收录情况,一般情况下我们可以通过查看空间服务器的日志文件来查看搜索引擎到底爬取了我们哪些个页面,不过,如果用php代码分析web日志中蜘蛛爬虫痕迹,是比较好又比较直观方便操作的!下面是示例代码,有需要的朋友们下面来一起看看吧。

示例代码

<?php
//获取蜘蛛爬虫名或防采集
function isSpider(){
  $bots = array(
          'Google'  => 'googlebot',
          'Baidu'    => 'baiduspider',
          'Yahoo'    => 'yahoo slurp',
          'Soso'    => 'sosospider',
          'Msn'    => 'msnbot',
          'Altavista'  => 'scooter ',
          'Sogou'    => 'sogou spider',
          'Yodao'    => 'yodaobot'
      );
  $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
  foreach ($bots as $k => $v){
    if (strstr($v,$userAgent)){
      return $k;
      break;
    }
  }
  return false;
} 
//获取哪种蜘蛛爬虫后保存蜘蛛痕迹。
//根据采集时HTTP_USER_AGENT是否为空来防止采集
//抓蜘蛛爬虫
$spi  = isSpider();
if($spi){
  $tlc_thispage  = addslashes($_SERVER['HTTP_USER_AGENT']);
  $file      = 'robot.txt';
  $time      = date('Y-m-d H:i:s',mktime());
  $handle      = fopen($file,'a+');
  $PR        = $_SERVER['REQUEST_URI'];
  fwrite($handle, "Time:{$time} ROBOT:{$spi} AGENT:{$tlc_thispage} URL:{$PR} \n\r");
  fclose($handle);
}
?>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有问题大家可以留言交流。

PHP 相关文章推荐
php 异常处理实现代码
Mar 10 PHP
PHP 函数执行效率的小比较
Oct 17 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
Jun 18 PHP
解析PHP无限级分类方法及代码
Jun 21 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
php精确的统计在线人数的方法
Oct 21 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
PHP asXML()函数讲解
Feb 03 PHP
php中关于换行的实例写法
Sep 26 PHP
PHP常用函数之格式化时间操作示例
Oct 21 PHP
Laravel实现批量更新多条数据
Apr 06 PHP
php通过执行CutyCapt命令实现网页截图的方法
Sep 30 #PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
Sep 30 #PHP
利用PHP生成静态html页面的原理
Sep 30 #PHP
Yii2框架实现注册和登录教程
Sep 30 #PHP
php多线程并发实现方法
Sep 30 #PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 #PHP
分享PHP-pcntl 实现多进程代码
Sep 30 #PHP
You might like
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
学习使用PHP数组
2006/10/09 PHP
初学CAKEPHP 基础教程
2009/11/02 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
xml和web特殊字符
2009/04/28 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
Python Requests 基础入门
2016/04/07 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
python脚本第一行如何写
2020/08/30 Python
局部内部类是否可以访问非final变量?
2013/04/20 面试题
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
卫校中专生的自我评价
2014/01/15 职场文书
大学生旷课检讨书
2014/01/22 职场文书
工作态度检讨书
2014/02/11 职场文书
优质服务演讲稿
2014/05/14 职场文书
党课培训心得体会
2014/09/02 职场文书
教师求职自荐信范文
2015/03/04 职场文书
2015教师年度考核评语
2015/03/25 职场文书
教师创先争优承诺书
2015/04/27 职场文书
离职证明范本
2015/06/12 职场文书
2019各种承诺书范文
2019/06/24 职场文书