跳至
[1]
[全屏预览]
<?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 "测试结束";
}
}
?>
Copier après la connexion