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

5年以前  |  阅读数:253 次  |  编程语言:PHP 

实现爬虫记录本文从创建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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例