当前位置 : 主页 > 网络编程 > PHP >

php skymvc网站测试之页面测试,爬行所有页面

来源:互联网 收集:自由互联 发布时间:2021-06-28
网站测试之页面测试,爬行所有页面 依赖项目:skymvc http://www.skymvc.com ?php/*******Author 雷日锦*本代码在skymvc中使用 http://www.skymvc.com*页面测试 自动爬行所有页面*******/class test_pageControl
网站测试之页面测试,爬行所有页面
依赖项目:skymvc http://www.skymvc.com
 
<?php
/******
*Author 雷日锦
*本代码在skymvc中使用 http://www.skymvc.com
*页面测试 自动爬行所有页面
*******/
class test_pageControl extends skymvc{
      
    public $para=array("id","catid","userid");
    public $action=array("default","list","show","add","my");
    public $id=123;
    public $per_page=1;
    public $maxThreads=10;
    public $token="1234";
    public $site="http://skymvc.skymvc.com/index.php?";
    public function __construct(){
        parent::__construct();
    }
      
    public function onDefault(){
          
    }
      
    public function getTables(){
        $res=M("article")->query("show tables");
        $data=M("article")->fetch_array(PDO::FETCH_NUM);
        foreach($data as $k=>$t){
            $tables[]=str_replace(TABLE_PRE,"",$t[0]);
        }
        return $tables;
    }
      
    public function onSetAction($a=array()){
           
        if(!empty($a)){
            $this->action=array_merge($this->action,$a);
        }       
           
  
    }
    public function onSetPara($a=array()){
           
        if(!empty($a)){
            $this->para=array_merge($this->para,$a);
        }       
       
    }
      
    public function getUrls(){
        $tables=$this->getTables();
        $para="";
        foreach($this->para as $q){
            $para.="&$q=".$this->id;
        }
        $para.="&token=".$this->token."&per_page=".$this->per_page;
        foreach($tables as $m){
            $uk=0;
            foreach($this->action as $k=>$a){
                $urls[]=$this->site."m=$m&a=$a".$para;
                if($k%$this->maxThreads==($this->maxThreads-1)){
                    $uk++;
                }
            }
        }
        return $urls;
    }
       
    public function onStart(){
        set_time_limit(0);
        ob_implicit_flush(true);
        $urls=$this->getUrls();
        $uk=0;
        foreach($urls as $k=>$url){
            $purls[$uk][]=$url;
            if($k%$this->maxThreads==($this->maxThreads-1)){
                $uk++;
            }
        }
        echo "开始<br>";
        foreach($purls as $k=>$urls){
            echo "第".$k."部分<br>";
            flush();
            @ob_flush();
            $this->loadClass("spider");
            $this->spider->start($urls,function($data){
                echo $data['url']." <br>";
                flush();
                @ob_flush();
            });
        }
        echo "测试结束";
    }
      
}
  
?>

网友评论