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 相关文章推荐
无数据库的详细域名查询程序PHP版(5)
Oct 09 PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 PHP
PHP5.4中json_encode中文转码的变化小结
Jan 30 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
php函数与传递参数实例分析
Nov 15 PHP
PHP框架laravel的.env文件配置教程
Jun 07 PHP
php 字符串中是否包含指定字符串的多种方法
Apr 12 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 PHP
yii2 开发api接口时优雅的处理全局异常的方法
May 14 PHP
PHP生成zip压缩包的常用方法示例
Aug 22 PHP
php中yii框架实例用法
Dec 22 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/06/14 PHP
php的字符串用法小结
2010/06/08 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
PHP实现的封装验证码类详解
2013/06/18 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
JS网络游戏-(模拟城市webgame)提供的一些例子下载
2007/10/14 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
python如何获取apk的packagename和activity
2020/01/10 Python
关于Django Models CharField 参数说明
2020/03/31 Python
Python 如何批量更新已安装的库
2020/05/26 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
戴森英国官网:Dyson英国
2019/05/07 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
自我评价正确写法范文
2013/12/10 职场文书
洗煤厂厂长岗位职责
2014/01/03 职场文书
会计实训报告范文
2014/11/04 职场文书
营业员岗位职责
2015/02/11 职场文书
学校捐书活动总结
2015/05/08 职场文书
恰同学少年观后感
2015/06/08 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP