摘要:使用的方式來做采集,擁有豐富的插件。下面來演示使用插件抓取動態創建的頁面內容。插件使用瀏覽器打開連接使用以采集今日頭條手機版為例,今日頭條手機版基于框架,內容是純動態渲染出來的。
QueryList使用jQuery的方式來做采集,擁有豐富的插件。
下面來演示QueryList使用PhantomJS插件抓取JS動態創建的頁面內容。
安裝使用Composer安裝:
安裝QueryList
composer require jaeger/querylist
GitHub: https://github.com/jae-jae/QueryList
安裝PhantomJS插件
composer require jaeger/querylist-phantomjs
下載PhantomJS二進制文件GitHub: https://github.com/jae-jae/QueryList-PhantomJS
PhantomJS官網:http://phantomjs.org ,下載對應平臺的PhantomJS二進制文件。
插件APIQueryList browser($url,$debug = false,$commandOpt = []):使用瀏覽器打開連接
使用以采集「今日頭條」手機版為例,「今日頭條」手機版基于React框架,內容是純動態渲染出來的。
下面演示QueryList的PhantomJs插件用法:
安裝插件
use QLQueryList; use QLExtPhantomJs; $ql = QueryList::getInstance(); // 安裝時需要設置PhantomJS二進制文件路徑 $ql->use(PhantomJs::class,"/usr/local/bin/phantomjs"); //or Custom function name $ql->use(PhantomJs::class,"/usr/local/bin/phantomjs","browser");
Example-1
獲取動態渲染的HTML:
$html = $ql->browser("https://m.toutiao.com")->getHtml(); print_r($html);
獲取所有p標簽文本內容:
$data = $ql->browser("https://m.toutiao.com")->find("p")->texts(); print_r($data->all());
輸出:
Array ( [0] => 自拍模式開啟!國慶假期我和國旗合個影 [1] => 你旅途已開始 他們仍在自己的崗位上為你的假期保駕護航 [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
自定義一個復雜的請求:
$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());
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25946.html
QueryList 簡介 QueryList是一套簡潔、優雅、可擴展的PHP采集工具(爬蟲),基于phpQuery。 特性 擁有與jQuery完全相同的CSS3 DOM選擇器 擁有與jQuery完全相同的DOM操作API 擁有通用的列表采集方案 擁有強大的HTTP請求套件,輕松實現如:模擬登陸、偽造瀏覽器、HTTP代理等意復雜的網絡請求 擁有亂碼解決方案 擁有強大的內容過濾功能,可使用jQue...
摘要:使用的方式來做采集,擁有豐富的插件。下面來演示使用搜索引擎插件輕松實現站內搜索。 QueryList使用jQuery的方式來做采集,擁有豐富的插件。 下面來演示QueryList使用Baidu搜索引擎插件輕松實現站內搜索。 安裝 使用Composer安裝: 安裝QueryList composer require jaeger/querylist GitHub: https://git...
PHP 函數的 JavaScript 實現 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...
摘要:采集目標微信文章頁標題內容發布時間作者等信息。安裝微信采集代碼采集規則可以很輕松的就寫出采集代碼出來,來看看運行結果和預期一樣正確采集到了內容,但是內容亂碼了。 采集目標 微信文章頁標題、內容、發布時間、作者等信息。 采集示例URL https://mp.weixin.qq.com/s?src=11×tamp=1523173327&ver=803&signature=6PCx...
摘要:查找保存下載用搭建自己的緩存倉庫權限管理的好選擇基于封裝的后臺管理系統,支持手機和端訪問支付寶風格的驗證器后臺系統微信接口的部署腳本開發的博客系統百度推送自動記錄用戶行為擴展一個項目管理系統根據生成對應導航的狀態 1.debug https://github.com/barryvdh/l... showImg(https://segmentfault.com/img/bVmhWL); ...
閱讀 2837·2021-09-28 09:45
閱讀 1510·2021-09-26 10:13
閱讀 905·2021-09-04 16:45
閱讀 3665·2021-08-18 10:21
閱讀 1092·2019-08-29 15:07
閱讀 2637·2019-08-29 14:10
閱讀 3150·2019-08-29 13:02
閱讀 2465·2019-08-29 12:31