摘要:使用的方式來做采集,擁有豐富的插件。下面來演示使用插件抓取動態(tài)創(chuàng)建的頁面內(nèi)容。插件使用瀏覽器打開連接使用以采集今日頭條手機(jī)版為例,今日頭條手機(jī)版基于框架,內(nèi)容是純動態(tài)渲染出來的。
QueryList使用jQuery的方式來做采集,擁有豐富的插件。
下面來演示QueryList使用PhantomJS插件抓取JS動態(tài)創(chuàng)建的頁面內(nèi)容。
安裝使用Composer安裝:
安裝QueryList
composer require jaeger/querylist
GitHub: https://github.com/jae-jae/QueryList
安裝PhantomJS插件
composer require jaeger/querylist-phantomjs
下載PhantomJS二進(jìn)制文件GitHub: https://github.com/jae-jae/QueryList-PhantomJS
PhantomJS官網(wǎng):http://phantomjs.org ,下載對應(yīng)平臺的PhantomJS二進(jìn)制文件。
插件APIQueryList browser($url,$debug = false,$commandOpt = []):使用瀏覽器打開連接
使用以采集「今日頭條」手機(jī)版為例,「今日頭條」手機(jī)版基于React框架,內(nèi)容是純動態(tài)渲染出來的。
下面演示QueryList的PhantomJs插件用法:
安裝插件
use QLQueryList; use QLExtPhantomJs; $ql = QueryList::getInstance(); // 安裝時需要設(shè)置PhantomJS二進(jìn)制文件路徑 $ql->use(PhantomJs::class,"/usr/local/bin/phantomjs"); //or Custom function name $ql->use(PhantomJs::class,"/usr/local/bin/phantomjs","browser");
Example-1
獲取動態(tài)渲染的HTML:
$html = $ql->browser("https://m.toutiao.com")->getHtml(); print_r($html);
獲取所有p標(biāo)簽文本內(nèi)容:
$data = $ql->browser("https://m.toutiao.com")->find("p")->texts(); print_r($data->all());
輸出:
Array ( [0] => 自拍模式開啟!國慶假期我和國旗合個影 [1] => 你旅途已開始 他們?nèi)栽谧约旱膷徫簧蠟槟愕募倨诒q{護(hù)航 [2] => 喜極而泣,都教授終于回到地球了! //.... )
使用http代理:
// 更多選項可以查看文檔: http://phantomjs.org/api/command-line.html $ql->browser("https://m.toutiao.com",true,[ // 使用http代理 "--proxy" => "192.168.1.42:8080", "--proxy-type" => "http" ])
Example-2
自定義一個復(fù)雜的請求:
$data = $ql->browser(function (JonnyWPhantomJsHttpRequestInterface $r){ $r->setMethod("GET"); $r->setUrl("https://m.toutiao.com"); $r->setTimeout(10000); // 10 seconds $r->setDelay(3); // 3 seconds return $r; })->find("p")->texts(); print_r($data->all());
開啟debug模式,并從本地加載cookie文件:
$data = $ql->browser(function (JonnyWPhantomJsHttpRequestInterface $r){ $r->setMethod("GET"); $r->setUrl("https://m.toutiao.com"); $r->setTimeout(10000); // 10 seconds $r->setDelay(3); // 3 seconds return $r; },true,[ "--cookies-file" => "/path/to/cookies.txt" ])->rules([ "title" => ["p","text"], "link" => ["a","href"] ])->query()->getData(); print_r($data->all());
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/25946.html
QueryList 簡介 QueryList是一套簡潔、優(yōu)雅、可擴(kuò)展的PHP采集工具(爬蟲),基于phpQuery。 特性 擁有與jQuery完全相同的CSS3 DOM選擇器 擁有與jQuery完全相同的DOM操作API 擁有通用的列表采集方案 擁有強(qiáng)大的HTTP請求套件,輕松實(shí)現(xiàn)如:模擬登陸、偽造瀏覽器、HTTP代理等意復(fù)雜的網(wǎng)絡(luò)請求 擁有亂碼解決方案 擁有強(qiáng)大的內(nèi)容過濾功能,可使用jQue...
摘要:使用的方式來做采集,擁有豐富的插件。下面來演示使用搜索引擎插件輕松實(shí)現(xiàn)站內(nèi)搜索。 QueryList使用jQuery的方式來做采集,擁有豐富的插件。 下面來演示QueryList使用Baidu搜索引擎插件輕松實(shí)現(xiàn)站內(nèi)搜索。 安裝 使用Composer安裝: 安裝QueryList composer require jaeger/querylist GitHub: https://git...
PHP 函數(shù)的 JavaScript 實(shí)現(xiàn) module.exports = function array_sum (array) { // eslint-disable-line camelcase // discuss at: http://locutus.io/php/array_sum/ // original by: Kevin van Zonneveld (http://kv...
摘要:采集目標(biāo)微信文章頁標(biāo)題內(nèi)容發(fā)布時間作者等信息。安裝微信采集代碼采集規(guī)則可以很輕松的就寫出采集代碼出來,來看看運(yùn)行結(jié)果和預(yù)期一樣正確采集到了內(nèi)容,但是內(nèi)容亂碼了。 采集目標(biāo) 微信文章頁標(biāo)題、內(nèi)容、發(fā)布時間、作者等信息。 采集示例URL https://mp.weixin.qq.com/s?src=11×tamp=1523173327&ver=803&signature=6PCx...
摘要:查找保存下載用搭建自己的緩存?zhèn)}庫權(quán)限管理的好選擇基于封裝的后臺管理系統(tǒng),支持手機(jī)和端訪問支付寶風(fēng)格的驗(yàn)證器后臺系統(tǒng)微信接口的部署腳本開發(fā)的博客系統(tǒng)百度推送自動記錄用戶行為擴(kuò)展一個項目管理系統(tǒng)根據(jù)生成對應(yīng)導(dǎo)航的狀態(tài) 1.debug https://github.com/barryvdh/l... showImg(https://segmentfault.com/img/bVmhWL); ...
閱讀 2865·2021-09-28 09:45
閱讀 1530·2021-09-26 10:13
閱讀 935·2021-09-04 16:45
閱讀 3693·2021-08-18 10:21
閱讀 1118·2019-08-29 15:07
閱讀 2661·2019-08-29 14:10
閱讀 3173·2019-08-29 13:02
閱讀 2489·2019-08-29 12:31