PHP记录搜索引擎蜘蛛访问网站足迹的方法


Posted in PHP onApril 15, 2015

本文实例讲述了PHP记录搜索引擎蜘蛛访问网站足迹的方法。分享给大家供大家参考。具体分析如下:

搜索引擎的蜘蛛访问网站是通过远程抓取页面来进行的,我们不能使用JS代码来取得蜘蛛的Agent信息,但是我们可以通过image标签,这样我们就可以得到蜘蛛的agent资料了,通过对agent资料的分析,就可以确定蜘蛛的种类、性别等因素,我们在通过数据库或者文本来记录就可以进行统计了。

数据库结构:

以下为引用的内容:

#
# 表的结构 `naps_stats_bot`
#

CREATE TABLE `naps_stats_bot` (
`botid` int(10) unsigned NOT NULL auto_increment,
`botname` varchar(100) NOT NULL default '',
`botagent` varchar(200) NOT NULL default '',
`bottag` varchar(100) NOT NULL default '',
`botcount` int(11) NOT NULL default '0',
`botlast` datetime NOT NULL default '0000-00-00 00:00:00',
`botlasturl` varchar(250) NOT NULL default '',
UNIQUE KEY `botid` (`botid`),
KEY `botname` (`botname`)
) TYPE=MyISAM AUTO_INCREMENT=9 ;
#
# 导出表中的数据 `naps_stats_bot`
#
INSERT INTO `naps_stats_bot` VALUES (1, 'Googlebot', 'Googlebot/2.X (+http://www.googlebot.com/bot.html)', 'googlebot', 0, '0000-00-00 00:00:00', '');
INSERT INTO `naps_stats_bot` VALUES (2, 'MSNbot', 'MSNBOT/0.1 (http://search.msn.com/msnbot.htm)', 'msnbot', 0, '0000-00-00 00:00:00', '');
INSERT INTO `naps_stats_bot` VALUES (3, 'Inktomi Slurp', 'Slurp/2.0', 'slurp', 0, '0000-00-00 00:00:00', '');
INSERT INTO `naps_stats_bot` VALUES (4, 'Baiduspider', 'Baiduspider+(+http://www.baidu.com/search/spider.htm)', 'baiduspider', 0, '0000-00-00 00:00:00', '');
INSERT INTO `naps_stats_bot` VALUES (5, 'Yahoobot', 'Mozilla/5.0+(compatible;+Yahoo!+Slurp;+http://help.yahoo.com/help/us/ysearch/slurp)', 'slurp', 0, '0000-00-00 00:00:00', '');
INSERT INTO `naps_stats_bot` VALUES (6, 'Sohubot', 'sohu-search', 'sohu-search', 0, '0000-00-00 00:00:00', '');
INSERT INTO `naps_stats_bot` VALUES (7, 'Lycos', 'Lycos/x.x', 'lycos', 0, '0000-00-00 00:00:00', '');
INSERT INTO `naps_stats_bot` VALUES (8, 'Robozilla', 'Robozilla/1.0', 'robozilla', 0, '0000-00-00 00:00:00', '');

PHP程序如下:

以下为引用的内容:

<?php
/************************
* NAPS -- Network Article Publish System
* ----------------------------------------------
*     bot.php
*     -------------------
*  begin  : 2004-08-15
*
************************/
/************************
*
*  This program is free software; you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation; either version 2 of the License.
*
************************/
/************************
*
*  NAPS产品是自由软件。你可以且必须根据《GNU GPL-GNU通用公共许可证》的相关规定
*  复制、修改及分发NAPS产品。任何以NAPS产品为基础的衍生发行版未必须经过飘飘的授权。
*
************************/
error_reporting(E_ALL & ~E_NOTICE);
function get_naps_bot()
{
 $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
 if (strpos($useragent, 'googlebot') !== false){
  return 'Googlebot';
 }
 if (strpos($useragent, 'msnbot') !== false){
  return 'MSNbot';
 }
 if (strpos($useragent, 'slurp') !== false){
  return 'Yahoobot';
 }
 if (strpos($useragent, 'baiduspider') !== false){
  return 'Baiduspider';
 }
 if (strpos($useragent, 'sohu-search') !== false){
  return 'Sohubot';
 }
 if (strpos($useragent, 'lycos') !== false){
  return 'Lycos';
 }
 if (strpos($useragent, 'robozilla') !== false){
  return 'Robozilla';
 }    
 return false;
}
$tlc_thispage = addslashes($_SERVER['HTTP_USER_AGENT']);
//添加蜘蛛的抓取记录
$searchbot = get_naps_bot();
if ($searchbot) {
 $DB_naps->query("UPDATE naps_stats_bot SET botcount=botcount+1, botlast=NOW(), botlasturl='$tlc_thispage' WHERE botname='$searchbot'");
}
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
dedecms系统常用术语汇总
Apr 03 PHP
动易数据转成dedecms的php程序
Apr 07 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
Oct 01 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
Jun 19 PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 PHP
php实现粘贴截图并完成上传功能
May 17 PHP
php中简单的对称加密算法实现
Jan 05 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
May 12 PHP
Laravel监听数据库访问,打印SQL的例子
Oct 24 PHP
PHP 计算两个时间段之间交集的天数示例
Oct 24 PHP
php获取Google机器人访问足迹的方法
Apr 15 #PHP
分享自定义的几个PHP功能函数
Apr 15 #PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 #PHP
PHP也能干大事 随机函数
Apr 14 #PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 #PHP
微信公众平台之快递查询功能用法实例
Apr 14 #PHP
php生成rss类用法实例
Apr 14 #PHP
You might like
PHP 数组教程 定义数组
2009/10/23 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
php判断当前操作系统类型
2015/10/28 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
页面中iframe相互传值传参
2009/12/13 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
对vue中v-on绑定自定事件的实例讲解
2018/09/06 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
浅析Python函数式编程
2018/10/06 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
2019/08/29 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
Python reques接口测试框架实现代码
2020/07/28 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
音乐器材管理制度
2014/01/31 职场文书
初一学生评语大全
2014/04/24 职场文书
婚内分居协议书范文
2014/11/26 职场文书
党委工作总结2015
2015/04/27 职场文书
uni-app 微信小程序授权登录的实现步骤
2022/02/18 Javascript