利用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如何得到当前页和上一页的地址?
Nov 27 PHP
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
php sprintf()函数让你的sql操作更安全
Jul 23 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
Nov 02 PHP
处理单名多值表单的详解
Jun 08 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
Jun 18 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
php实现的任意进制互转类分享
Jul 07 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
Jan 05 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 PHP
laravel数据库查询结果自动转数组修改实例
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 session机制
2011/07/17 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
python交互式图形编程实例(三)
2017/11/17 Python
scrapy爬虫实例分享
2017/12/28 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
使用Python来开发微信功能
2018/06/13 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
python动态进度条的实现代码
2019/07/03 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
使用python turtle画高达
2020/01/19 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
导致python中import错误的原因是什么
2020/07/01 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
python drf各类组件的用法和作用
2021/01/12 Python
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
机电一体化毕业生求职信
2013/11/02 职场文书
工作疏忽检讨书
2014/01/25 职场文书
小学社团活动总结
2014/06/27 职场文书
公司合作意向书范文
2014/07/30 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
电影地道战观后感
2015/06/04 职场文书
2016新年问候语大全
2015/11/11 职场文书
mysql序号rownum行号实现方式
2022/12/24 MySQL