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变量范围介绍
Oct 15 PHP
php Xdebug的安装与使用详解
Jun 20 PHP
php将字符串转化成date存入数据库的两种方式
Apr 28 PHP
一个简单的PHP验证码实现代码
May 10 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
eclipse php wamp配置教程
Jun 30 PHP
php 数组元素快速去重
May 05 PHP
thinkPHP多表查询及分页功能实现方法示例
Jul 03 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
Apr 21 PHP
解决在Laravel 中处理OPTIONS请求的问题
Oct 11 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
Apr 06 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
第十三节--对象串行化
2006/11/16 PHP
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
新手入门常用代码集锦
2007/01/11 Javascript
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
this和执行上下文实现代码
2010/07/01 Javascript
AngularJS基础知识
2014/12/21 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python函数的周期性执行实现方法
2016/08/13 Python
Python random模块用法解析及简单示例
2017/12/18 Python
python爬虫实例详解
2018/06/19 Python
Sanic框架应用部署方法详解
2018/07/18 Python
Python docx库用法示例分析
2019/02/16 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
Python如何使用PIL Image制作GIF图片
2020/05/16 Python
床上用品全球在线购物:BeddingInn
2016/12/18 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
介绍下Lucene建立索引的过程
2016/03/02 面试题
生产部主管岗位职责
2014/01/06 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
冰雪公主观后感
2015/06/16 职场文书
小学班主任研修日志
2015/11/13 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
Python包argparse模块常用方法
2021/06/04 Python
Python必备技巧之字符数据操作详解
2022/03/23 Python