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 相关文章推荐
PHP4 与 MySQL 交互使用
Oct 09 PHP
php中随机显示图片的函数代码
Jun 23 PHP
PHP反转字符串函数strrev()函数的用法
Feb 04 PHP
php分页思路以及在ZF中的使用
May 30 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
php Hex RGB颜色值互换的使用
May 10 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
Dec 25 PHP
PHP Reflection API详解
May 12 PHP
10个超级有用的PHP代码片段果断收藏
Sep 23 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
Dec 11 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 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如何通过AJAX方式实现登录功能
2015/11/23 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
javascript移动开发中touch触摸事件详解
2016/03/18 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
python搭建微信公众平台
2016/02/09 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
python 中如何获取列表的索引
2019/07/02 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
python提取xml里面的链接源码详解
2019/10/15 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
社会实践活动总结范文
2014/07/03 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
2015年初一班主任工作总结
2015/05/13 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
追悼词范文大全
2015/06/23 职场文书
python 中的jieba分词库
2021/11/23 Python
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL