QueryList Collector Development Manual
/ getData( ) 獲取采集結(jié)果
getData( ) 獲取采集結(jié)果
getData( ) 方法
返回值:array
獲取采集結(jié)果數(shù)據(jù)的結(jié)果數(shù)據(jù),并可以進(jìn)一步處理結(jié)果。
原型:
getData($callback = null)
參數(shù): $callback
類型:callback
默認(rèn)值:null
可以通過這個回調(diào)函數(shù)進(jìn)一步處理結(jié)果,替換內(nèi)容、補(bǔ)全鏈接,下載圖片等等;
并且還可以在這個回調(diào)函數(shù)用使用QueyList進(jìn)行嵌套無限級采集。
用法
采集所有圖片鏈接,采集目標(biāo):
$html =<<<STR <div class="xx"> <img data-src="/path/to/1.jpg" alt=""> </div> <div class="xx"> <img data-src="/path/to/2.jpg" alt=""> </div> <div class="xx"> <img data-src="/path/to/3.jpg" alt=""> </div> STR;
$data = QueryList::Query($html,array( 'image' => array('.xx>img','data-src') ))->getData(function($item){ return $item; }); print_r($data); /** 采集結(jié)果: Array ( [0] => Array ( [image] => /path/to/1.jpg ) [1] => Array ( [image] => /path/to/2.jpg ) [2] => Array ( [image] => /path/to/3.jpg ) ) **/
添加需求
輸出的數(shù)組變成一維數(shù)組,改造采集代碼:
$data = QueryList::Query($html,array( 'image' => array('.xx>img','data-src') ))->getData(function($item){ return $item['image']; }); print_r($data); /** 采集結(jié)果: Array ( [0] => /path/to/1.jpg [1] => /path/to/2.jpg [2] => /path/to/3.jpg ) **/
繼續(xù)添加需求
補(bǔ)全圖片鏈接,改造采集代碼:
$baseUrl = 'http://xxxx.com'; $data = QueryList::Query($html,array( 'image' => array('.xx>img','data-src') ))->getData(function($item) use($baseUrl){ return $baseUrl.$item['image']; }); print_r($data); /** 采集結(jié)果: Array ( [0] => http://xxxx.com/path/to/1.jpg [1] => http://xxxx.com/path/to/2.jpg [2] => http://xxxx.com/path/to/3.jpg ) **/
完整代碼
<?php
require 'vendor/autoload.php';
use QL\QueryList;
$html =<<<STR
<div class="xx">
<img data-src="/path/to/1.jpg" alt="">
</div>
<div class="xx">
<img data-src="/path/to/2.jpg" alt="">
</div>
<div class="xx">
<img data-src="/path/to/3.jpg" alt="">
</div>
STR;
$baseUrl = 'http://xxxx.com';
$data = QueryList::Query($html,array(
'image' => array('.xx>img','data-src')
))->getData(function($item) use($baseUrl){
return $baseUrl.$item['image'];
});
print_r($data);