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 增加了对 .ZIP 文件的读取功能
Oct 09 PHP
php桌面中心(一) 创建数据库
Mar 11 PHP
PHP中使用crypt()实现用户身份验证的代码
Sep 05 PHP
PHP迭代器实现斐波纳契数列的函数
Nov 12 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
CI框架装载器Loader.php源码分析
Nov 04 PHP
PHP内核学习教程之php opcode内核实现
Jan 27 PHP
PHP在linux上执行外部命令的方法
Feb 06 PHP
PHP多种序列化/反序列化的方法详解
Jun 23 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 20 PHP
laravel5.6实现数值转换
Oct 23 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
使用php4加速网络传输
2006/10/09 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
PHP也能干大事 随机函数
2015/04/14 PHP
Yii中实现处理前后台登录的新方法
2015/12/28 PHP
php格式化json函数示例代码
2016/05/12 PHP
JavaScript修改css样式style
2008/04/15 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
回顾Javascript React基础
2019/06/15 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
Python正则表达式介绍
2012/08/06 Python
python实现的一个p2p文件传输实例
2014/06/04 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
node中使用shell脚本的方法步骤
2021/03/23 Javascript
青年文明号口号
2014/06/17 职场文书
法学专业大学生实习自我鉴定
2014/10/05 职场文书
小学教师求职信范文
2015/03/20 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
python opencv通过4坐标剪裁图片
2021/06/05 Python