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 页面执行时间计算代码
Dec 04 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
PHP生成随机数的方法实例分析
Jan 22 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
PHP简单读取PDF页数的实现方法
Jul 21 PHP
Laravel日志用法详解
Oct 09 PHP
PHP获取二叉树镜像的方法
Jan 17 PHP
PHP简单实现防止SQL注入的方法
Mar 13 PHP
php实现的简单多进程服务器类完整示例
Feb 01 PHP
php7 错误处理机制修改实例分析
May 25 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 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
java微信开发之上传下载多媒体文件
2016/06/24 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
PHP调用接口用post方法传送json数据的实例
2018/05/31 PHP
扩展String功能方法
2006/09/22 Javascript
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
小程序实现分类页
2019/07/12 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
python按照多个条件排序的方法
2019/02/08 Python
在django中,关于session的通用设置方法
2019/08/06 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
python复合条件下的字典排序
2020/12/18 Python
什么是测试驱动开发(TDD)
2012/02/15 面试题
大专会计自我鉴定
2014/02/06 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
2014年采购员工作总结
2014/11/18 职场文书
家长对孩子的寄语
2015/02/26 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
Android studio 简单计算器的编写
2022/05/20 Java/Android