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 09 PHP
PHP&amp;MYSQL服务器配置说明
Oct 09 PHP
ip签名探针
Oct 09 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
PHP+jQuery 注册模块开发详解
Oct 14 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
PHP Try-catch 语句使用技巧
Feb 28 PHP
PHP的swoole扩展安装方法详细教程
May 18 PHP
PHP实现的登录,注册及密码修改功能分析
Nov 25 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 PHP
PHP number_format函数原理及实例解析
Jul 14 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生成验证码函数
2015/10/20 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
Python中Django发送带图片和附件的邮件
2017/03/31 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
python编写弹球游戏的实现代码
2018/03/12 Python
Python BS4库的安装与使用详解
2018/08/08 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
Python如何将函数值赋给变量
2020/04/28 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
绿化先进工作者事迹材料
2014/01/30 职场文书
个人党性剖析材料
2014/02/03 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL