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动态生成静态HTML网页的代码
Mar 04 PHP
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 PHP
基于flush()不能按顺序输出时的解决办法
Jun 29 PHP
php输入数据统一类实例
Feb 23 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
一个简单的php MVC留言本实例代码(必看篇)
Sep 22 PHP
Yii2实现多域名跨域同步登录退出
Feb 04 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
Apr 25 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 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 和 MySQL 基础教程(四)
2006/10/09 PHP
基于mysql的bbs设计(一)
2006/10/09 PHP
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
PHP二维数组去重算法
2016/12/17 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
用javascript实现画板的代码
2007/09/05 Javascript
js单例模式详解实例
2013/11/21 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
在windows系统中实现python3安装lxml
2016/03/23 Python
简单实现python画圆功能
2018/01/25 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
python实现dijkstra最短路由算法
2019/01/17 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
python hashlib加密实现代码
2019/10/17 Python
基于python操作ES实例详解
2019/11/16 Python
python绘制趋势图的示例
2020/09/17 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
《最大的“书”》教学反思
2014/02/14 职场文书
旅游与环境专业求职信
2014/06/05 职场文书
五四演讲稿范文
2014/09/03 职场文书
公证委托书格式
2014/09/13 职场文书
2014年管理工作总结
2014/11/22 职场文书
保管员岗位职责
2015/02/14 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
励志语录:你若不勇敢,谁替你坚强
2019/11/08 职场文书
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
2021/06/05 Python