PHP代码实现爬虫记录――超管用


Posted in PHP onJuly 31, 2015

实现爬虫记录本文从创建crawler 数据库,robot.php记录来访的爬虫从而将信息插入数据库crawler,然后从数据库中就可以获得所有的爬虫信息。实现代码具体如下:

数据库设计

create table crawler  
(  
 crawler_ID bigint() unsigned not null auto_increment primary key,
 crawler_category varchar() not null,
 crawler_date datetime not null default '-- ::',
 crawler_url varchar() not null,
 crawler_IP varchar() not null
)default charset=utf;

以下文件 robot.php 记录来访的爬虫,并将信息写入数据库:

<?php
 $ServerName = $_SERVER["SERVER_NAME"] ; 
 $ServerPort = $_SERVER["SERVER_PORT"] ; 
 $ScriptName = $_SERVER["SCRIPT_NAME"] ; 
 $QueryString = $_SERVER["QUERY_STRING"]; 
 $serverip = $_SERVER["REMOTE_ADDR"] ; 
 $Url="http://".$ServerName;
 if ($ServerPort != "")
 {
  $Url = $Url.":".$ServerPort ;
 } 
 $Url=$Url.$ScriptName;
 if ($QueryString !="")
 {
  $Url=$Url."?".$QueryString;
 }  
 $GetLocationURL=$Url ;
 $agent = $_SERVER["HTTP_USER_AGENT"]; 
 $agent=strtolower($agent);
 $Bot ="";
 if (strpos($agent,"bot")>-)
 {
  $Bot = "Other Crawler";
 }
 if (strpos($agent,"googlebot")>-)
 {
  $Bot = "Google";
 }   
 if (strpos($agent,"mediapartners-google")>-)
 {
  $Bot = "Google Adsense";
 }
 if (strpos($agent,"baiduspider")>-)
 {
  $Bot = "Baidu";
 }
 if (strpos($agent,"sogou spider")>-)
 {
  $Bot = "Sogou";
 }
 if (strpos($agent,"yahoo")>-)
 {
  $Bot = "Yahoo!";
 }
 if (strpos($agent,"msn")>-)
 {
  $Bot = "MSN";
 }
 if (strpos($agent,"ia_archiver")>-)
 {
  $Bot = "Alexa";
 }
 if (strpos($agent,"iaarchiver")>-)
 {
  $Bot = "Alexa";
 }
 if (strpos($agent,"sohu")>-)
 {
  $Bot = "Sohu";
 }
 if (strpos($agent,"sqworm")>-)
 {
  $Bot = "AOL";
 }
 if (strpos($agent,"yodaoBot")>-)
 {
  $Bot = "Yodao";
 }
 if (strpos($agent,"iaskspider")>-)
 {
  $Bot = "Iask";
 }
 require("./dbinfo.php");
 date_default_timezone_set('PRC'); 
 $shijian=date("Y-m-d h:i:s", time());
 // 连接到 MySQL 服务器
 $connection = mysql_connect ($host, $username, $password);
 if (!$connection)
 {
  die('Not connected : ' . mysql_error());
 }
 // 设置活动的 MySQL 数据库
 $db_selected = mysql_select_db($database, $connection);
 if (!$db_selected)
 {
  die ('Can\'t use db : ' . mysql_error());
 }
 // 向数据库插入数据
 $query = "insert into crawler (crawler_category, crawler_date, crawler_url, crawler_IP) values ('$Bot','$shijian','$GetLocationURL','$serverip')";
 $result = mysql_query($query);
 if (!$result)
 {
  die('Invalid query: ' . mysql_error());
 }
?>

成功了,现在访问数据库即可得知什么时候哪里的蜘蛛爬过你的什么页面。

view sourceprint?
<?php
include './robot.php';
include '../library/page.Class.php';
$page = $_GET['page'];
include '../library/conn_new.php';
$count = $mysql -> num_rows($mysql -> query("select * from crawler"));
$pages = new PageClass($count,,$_GET['page'],$_SERVER['PHP_SELF'].'?page={page}');
$sql = "select * from crawler order by ";
$sql .= "crawler_date desc limit ".$pages -> page_limit.",".$pages -> myde_size;
$result = $mysql -> query($sql);
?>
<table width="">
 <thead>
  <tr> 
   <td bgcolor="#CCFFFF"></td> 
   <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫访问时间</td> 
   <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫分类</td>
   <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫IP</td>
   <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫访问的URL</td>
  </tr>
 </thead>
<?php
while($myrow = $mysql -> fetch_array($result)){
?>
<tr>
 <td width=""><img src="../images/topicnew.gif" /></td>
 <td width="" style="font-family:Georgia"><? echo $myrow["crawler_date"] ?></td>
 <td width="" style="color:#FA"><? echo $myrow["crawler_category"] ?></td>
 <td width=""><? echo $myrow["crawler_IP"] ?></td>
 <td width=""><? echo $myrow["crawler_url"] ?></td>
</tr>
<?php
 }
?>
 </table>
<?php
 echo $pages -> myde_write();
?>

以上代码就是PHP代码实现爬虫记录——超管用的全部内容,希望对大家有所帮助。

PHP 相关文章推荐
PHP 高手之路(二)
Oct 09 PHP
如何利用PHP执行.SQL文件
Jul 05 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
Jul 25 PHP
php实现格式化多行文本为Js可用格式
Apr 15 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 PHP
教你在PHPStorm中配置Xdebug
Jul 27 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 PHP
非常经典的PHP文件上传类分享
May 15 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
轻松实现php文件上传功能
Feb 17 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
Aug 07 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
PHP 前加at符合@的作用解析
Jul 31 #PHP
PHP查看当前变量类型的方法
Jul 31 #PHP
如何把php5.3版本升级到php5.4或者php5.5
Jul 31 #PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 #PHP
如何使用纯PHP实现定时器任务(Timer)
Jul 31 #PHP
利用PHP将部分内容用星号替换
Apr 21 #PHP
php之static静态属性与静态方法实例分析
Jul 30 #PHP
You might like
在Windows版的PHP中使用ADO
2006/10/09 PHP
PHP面向对象编程快速入门
2006/12/14 PHP
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
php英文单词统计器
2016/06/23 PHP
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
Python中os.path用法分析
2015/01/15 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
python中的常量和变量代码详解
2018/07/25 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
旅游管理实习自我鉴定
2013/09/29 职场文书
工程班组长岗位职责
2013/12/30 职场文书
大学生简短的自我评价
2014/09/12 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python