利用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 相关文章推荐
将数字格式的计算结果转为汉字格式
Oct 09 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
Jul 07 PHP
php数组(array)输出的三种形式详解
Jun 05 PHP
简单实用的.net DataTable导出Execl
Oct 28 PHP
php实现singleton()单例模式实例
Nov 06 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
php+ajax无刷新分页实例详解
Dec 07 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 PHP
PHP中SESSION过期设置
Mar 09 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
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
PHP闭包函数详解
2016/02/13 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
jQuery原理系列-css选择器的简单实现
2016/06/07 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
2017/02/13 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
[02:07]DOTA2新英雄展现中国元素,完美“圣典”亮相央视
2016/12/19 DOTA
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
简单的编程0基础下Python入门指引
2015/04/01 Python
实例Python处理XML文件的方法
2015/08/31 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
EM算法的python实现的方法步骤
2018/01/02 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
银行介绍信范文
2014/01/10 职场文书
高三政治教学反思
2014/02/06 职场文书
2015年安全生产责任书
2015/01/30 职场文书
优秀英文求职信范文
2015/03/19 职场文书
暂停营业通知
2015/04/25 职场文书
干部考核工作总结
2015/08/12 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
python中print格式化输出的问题
2021/04/16 Python
Python图像处理库PIL详细使用说明
2022/04/06 Python