//須要採集的目標頁面
$page = 'http://cms.querylist.cc/news/566.html';
//採集規則
$reg = array(
//採集文章標題
'title' => array('h1','text'),
//採集文章發佈日期,這裏用到了QueryList的過濾功能,過濾掉span標籤和a標籤
'date' => array('.pt_info','text','-span -a',function($content){
//用回調函數進一步過濾出日期
$arr = explode(' ',$content);
return $arr[0];
}),
//採集文章正文內容,利用過濾功能去掉文章中的超連接,但保留超連接的文字,並去掉版權、JS代碼等無用信息
'content' => array('.post_content','html','a -.content_copyright -script',function($content){
//利用回調函數下載文章中的圖片並替換圖片路徑爲本地路徑
//使用本例請確保當前目錄下有image文件夾,並有寫入權限
//因爲QueryList是基於phpQuery的,因此能夠隨時隨地使用phpQuery,固然在這裏也能夠使用正則或者其它方式達到一樣的目的
$doc=\phpQuery::newDocumentHTML($content);
$imgs = pq($doc)->find('img');
foreach ($imgs as $img) {
$src = 'http://cms.querylist.cc'.pq($img)->attr('src');
$localSrc = md5($src).'.jpg';
$stream = file_get_contents($src);
file_put_contents($localSrc,$stream);
pq($img)->attr('src',$localSrc);
}
return $doc->htmlOuter();
})
);
$rang = '.content';
$ql = QueryList::Query($page,$reg,$rang);
$data = $ql->getData();
//打印結果
print_r($data);