利用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 相关文章推荐
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
那些年一起学习的PHP(一)
Mar 21 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
Jun 21 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
Dec 22 PHP
PHP过滤★等特殊符号的正则
Jan 27 PHP
3种php生成唯一id的方法
Nov 23 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
微信红包随机生成算法php版
Jul 21 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
php 一维数组的循环遍历实现代码
Apr 10 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
Sep 04 PHP
PHP判断是否是微信打开还是浏览器打开的方法
Feb 27 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
怎样去阅读一份php源代码
2009/08/21 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
python3 读取Excel表格中的数据
2018/10/16 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
python实现五子棋小游戏
2020/03/25 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
加拿大购物频道:The Shopping Channel
2016/07/21 全球购物
Structs界面控制层技术
2013/10/11 面试题
学校运动会开幕演讲稿
2014/01/04 职场文书
培训主管的职业生涯规划
2014/03/06 职场文书
中华魂演讲稿
2014/05/13 职场文书
2014领导班子四风问题查摆思想汇报
2014/09/13 职场文书
投资意向协议书
2015/01/29 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers