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+MSSQL分页的例子
Oct 09 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
php 全局变量范围分析
Aug 07 PHP
PHP连接SQLServer2005方法及代码
Dec 26 PHP
PHP学习笔记(一) 简单了解PHP
Aug 04 PHP
在win7中搭建Linux+PHP 开发环境
Oct 08 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
Oct 21 PHP
thinkphp文件引用与分支结构用法实例
Nov 26 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
Feb 23 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
Apr 21 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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 date与gmdate的获取日期的区别
2010/02/08 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
php如何连接sql server
2015/10/16 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
javascript 动态生成私有变量访问器
2009/12/06 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python中的对象拷贝示例 python引用传递
2014/01/23 Python
Python SQLite3数据库操作类分享
2014/06/10 Python
python清除函数占用的内存方法
2018/06/25 Python
Python变量访问权限控制详解
2019/06/29 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
微博营销计划书
2014/01/10 职场文书
团日活动总结书
2014/05/08 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书
2015年植树节活动总结
2015/02/06 职场文书
学习心理学心得体会
2016/01/22 职场文书
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android
springboot读取nacos配置文件
2022/05/20 Java/Android