• 技术文章 >后端开发 >php教程

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

    2016-05-30 08:47:20原创528
    实现爬虫记录本文从创建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);
    ?>
    
    <?php
    while($myrow = $mysql -> fetch_array($result)){
    ?>
    
    <?php
     }
    ?>
     
    爬虫访问时间 爬虫分类 爬虫IP 爬虫访问的URL
    <? echo $myrow["crawler_date"] ?> <? echo $myrow["crawler_category"] ?> <? echo $myrow["crawler_IP"] ?> <? echo $myrow["crawler_url"] ?>
    <?php echo $pages -> myde_write(); ?>

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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP使用缓存即时输出内容(output buffering)的方法_PHP 下一篇:如何利用http协议发布博文评论_PHP
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• PHP如何使用xlswriter进行大数据的导入导出?(详解)• php通用防注入程序 推荐_php技巧• Yii中表单用法实例详解_PHP• PHP对文件进行加锁、解锁实例_PHP• PHP+jQuery 注册模块开发详解_PHP
    1/1

    PHP中文网