Manual Pembangunan Pengumpul QueryList
/ Login 模擬登陸擴(kuò)展
Login 模擬登陸擴(kuò)展
Login 模擬登陸擴(kuò)展
Login擴(kuò)展,可以實現(xiàn)模擬登陸然后采集。
安裝:
composer require jaeger/querylist-ext-login
GIT地址:
https://github.com/jae-jae/QueryList-Ext-Login.git
依賴(通過Composer安裝的請忽略)
Login擴(kuò)展依賴Request擴(kuò)展
,Request擴(kuò)展
安裝教程:http://doc.querylist.cc/site/index/doc/21
用法
$login = QueryList::run('Login',[ 'target' => '登陸表單提交的目標(biāo)地址', 'method' => 'post', //登陸表單需要提交的數(shù)據(jù) 'params' => ['username'=>'admin','password'=>'admin'], 'cookiePath' => 'cookie保存路徑' //更多參數(shù)查看Request擴(kuò)展 ]); //登陸成功后,就可以調(diào)用get和post兩個方法來抓取登陸后才能抓的頁面 $ql = $login->get('頁面地址'[,'處理頁面的回調(diào)函數(shù)','傳給回調(diào)的參數(shù)']); $ql = $login->post('頁面地址','post提交的數(shù)據(jù)數(shù)組'[,'處理頁面的回調(diào)函數(shù)','傳給回調(diào)的參數(shù)']); $data = $ql->setQuery(...)->data;
返回值為Login插件對象,這個對象的get和post兩個方法的返回值為設(shè)置好了html屬性的QueryList對象,然后應(yīng)該調(diào)用QueryList的setQuery方法設(shè)置采集規(guī)則。
//模擬登陸 $login = QueryList::run('Login',[ 'target' => 'http://xxx.com/login', 'method' => 'post', 'params' => ['username'=>'admin','password'=>'admin'], 'cookiePath' => './cookie123.txt' ]); $data = $login->post('http://xxx.com/admin',['key'=>'value'],function($content,$args){ //這里可以對頁面做一些格外的處理 //替換頁面的所有的yyy為xxx $content = str_replace('yyy',$args,$content); return $content; },'xxx')->setQuery(['title'=>['h1','text']])->data;