QueryList簡(jiǎn)潔、優(yōu)雅的 PHP 采集工具(爬蟲)
QueryList是一套簡(jiǎn)潔、優(yōu)雅的PHP采集工具(爬蟲),基于phpQuery。
特性:
擁有與jQuery完全相同的CSS3 DOM選擇器
擁有與jQuery完全相同的DOM操作API
擁有通用的列表采集方案
擁有強(qiáng)大的HTTP請(qǐng)求套件,輕松實(shí)現(xiàn)如:模擬登陸、偽造瀏覽器、HTTP代理等意復(fù)雜的網(wǎng)絡(luò)請(qǐng)求
擁有亂碼解決方案
擁有強(qiáng)大的內(nèi)容過濾功能,可使用jQuey選擇器來過濾內(nèi)容
擁有高度的模塊化設(shè)計(jì),擴(kuò)展性強(qiáng)
擁有富有表現(xiàn)力的API
擁有高質(zhì)量文檔
擁有豐富的插件
擁有專業(yè)的問答社區(qū)和交流群
通過插件可以輕松實(shí)現(xiàn)諸如:
多線程采集
圖片本地化
模擬瀏覽器行為,如:提交Form表單
網(wǎng)絡(luò)爬蟲
.....
安裝:
composer require jaeger/querylist
用法:
元素操作
采集「昵圖網(wǎng)」所有圖片地址
QueryList::get('http://www.nipic.com')->find('img')->attrs('src');
采集百度搜索結(jié)果
$ql = QueryList::get('http://www.baidu.com/s?wd=QueryList');
$ql->find('title')->text(); // 獲取網(wǎng)站標(biāo)題
$ql->find('meta[name=keywords]')->content; // 獲取網(wǎng)站頭部關(guān)鍵詞
$ql->find('h3>a')->texts(); //獲取搜索結(jié)果標(biāo)題列表
$ql->find('h3>a')->attrs('href'); //獲取搜索結(jié)果鏈接列表
$ql->find('img')->src; //獲取第一張圖片的鏈接地址
$ql->find('img:eq(1)')->src; //獲取第二張圖片的鏈接地址
$ql->find('img')->eq(2)->src; //獲取第三張圖片的鏈接地址
// 遍歷所有圖片
$ql->find('img')->map(function($img){
echo $img->alt; //打印圖片的alt屬性
});
列表采集
采集百度搜索結(jié)果列表的標(biāo)題和鏈接:
$data = QueryList::get('http://www.baidu.com/s?wd=QueryList')
// 設(shè)置采集規(guī)則
->rules([
'title'=>array('h3','text'),
'link'=>array('h3>a','href')
])
->query()->getData();
print_r($data->all());
采集結(jié)果:
Array ( [0] => Array ( [title] => QueryList|基于phpQuery的無比強(qiáng)大的PHP采集工具 [link] => http://www.baidu.com/link?url=GU_YbDT2IHk4ns1tjG2I8_vjmH0SCJEAPuuZN ) [1] => Array ( [title] => PHP 用QueryList抓取網(wǎng)頁內(nèi)容 - wb145230 - 博客園 [link] => http://www.baidu.com/link?url=zn0DXBnrvIF2ibRVW34KcRVFG1_bCdZvqvwIhUqiXaS ) [2] => Array ( [title] => 介紹- QueryList指導(dǎo)文檔 [link] => http://www.baidu.com/link?url=pSypvMovqS4v2sWeQo5fDBJ4EoYhXYi0Lxx ) //... )
查看更多用法:https://github.com/jae-jae/QueryList
尋求幫助?
QueryList交流社區(qū): http://querylist.cc/
QueryList文檔: http://doc.querylist.cc/
評(píng)論
圖片
表情
