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 相关文章推荐
怎样在UNIX系统下安装php3
Oct 09 PHP
PHP字符串的编码问题的详细介绍
Apr 27 PHP
解析php中的escape函数
Jun 29 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
Sep 28 PHP
php中使用url传递数组的方法
Feb 11 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
Apr 01 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
PHP实现的文件浏览器功能简单示例
Sep 12 PHP
零基础php编程好学吗
Oct 11 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 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数据库安装图文教程)
2010/04/28 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
php微信开发之图片回复功能
2018/06/14 PHP
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
JavaScript实现简单计算器
2020/03/19 Javascript
Python中for循环详解
2014/01/17 Python
vc6编写python扩展的方法分享
2014/01/17 Python
浅析Python中的多重继承
2015/04/28 Python
python Opencv将图片转为字符画
2021/02/19 Python
python 2.7.14安装图文教程
2018/04/08 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
PHP面试题及答案一
2012/06/18 面试题
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
写好自荐信要注意的问题
2013/11/10 职场文书
幼儿园教师辞职信
2014/01/18 职场文书
学生手册家长评语
2014/02/10 职场文书
军训自我鉴定怎么写
2014/02/13 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
2014年居委会工作总结
2014/12/09 职场文书
工作失职自我检讨书
2015/05/05 职场文书
党支部考察鉴定意见
2015/06/02 职场文书
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL
mysql 带多个条件的查询方式
2021/06/05 MySQL