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 和 COM
Oct 09 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
PHP删除HTMl标签的三种解决方法
Jun 30 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
PHP使用CURL模拟登录的方法
Jul 08 PHP
关于PHP开发的9条建议
Jul 27 PHP
从性能方面考虑PHP下载远程文件的3种方法
Dec 29 PHP
详解YII关联查询
Jan 10 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 PHP
PHP中overload与override的区别
Feb 13 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
Aug 06 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
PHP面向对象编程快速入门
2006/12/14 PHP
elgg 获取文件图标地址的方法
2010/03/20 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
php json转换相关知识(小结)
2018/12/21 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
js监听键盘事件示例代码
2013/07/26 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
Node.js编写CLI的实例详解
2017/05/17 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
vue-cli如何添加less 以及sass
2017/07/06 Javascript
理解javascript async的用法
2017/08/22 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
美国轮胎网站:Priority Tire
2018/11/28 全球购物
物理教学随笔感言
2014/02/22 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
了解Redis常见应用场景
2021/06/23 Redis
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers