利用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注入点构造代码
Jun 14 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
php上传图片存入数据库示例分享
Mar 11 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
Sep 16 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
Apr 04 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
Aug 21 PHP
apache集成php7.3.5的详细步骤
Jun 20 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
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
实现PHP多线程异步请求的3种方法
2014/01/17 PHP
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
JS选项卡动态替换banner图片路径的方法
2015/05/11 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
详解微信小程序input标签正则初体验
2018/08/18 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
[01:06:18]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第二场 1月26日
2021/03/11 DOTA
Python中__new__与__init__方法的区别详解
2015/05/04 Python
Python如何绘制日历图和热力图
2020/08/07 Python
阿波罗盒子:Apollo Box
2017/08/14 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
团拜会主持词
2015/07/04 职场文书
安全生产奖惩制度
2015/08/06 职场文书
MySQL日期时间函数知识汇总
2022/03/17 MySQL
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技