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绘制饼状图的实现代码
Jun 07 PHP
php加密解密实用类分享
Jan 07 PHP
本地计算机无法启动Apache故障处理
Aug 08 PHP
PHP处理Oracle的CLOB实例
Nov 03 PHP
php实现网页缓存的工具类分享
Jul 14 PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 PHP
php简单压缩css样式示例
Sep 22 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
php实现的http请求封装示例
Nov 08 PHP
PHP获取文本框、密码域、按钮的值实例代码
Apr 19 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
May 14 PHP
Yii框架分页技术实例分析
Aug 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 和 MySQL 基础教程(一)
2006/10/09 PHP
PHP EOT定界符的使用详解
2008/09/30 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
php生成图片缩略图的方法
2015/04/07 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
克隆javascript对象的三个方法小结
2011/01/12 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
PPP协议组成及简述协议协商的基本过程
2015/05/28 面试题
简历里的自我评价
2014/01/31 职场文书
上课打牌的检讨书
2014/02/15 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
后勤工作个人总结
2015/02/28 职场文书
情感电台广播稿
2015/08/18 职场文书
民事调解协议书
2016/03/21 职场文书
java设计模式--原型模式详解
2021/07/21 Java/Android
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android
python区块链实现简版工作量证明
2022/05/25 Python