成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

php使用QueryList輕松采集JavaScript動態(tài)渲染頁面

Jason / 3038人閱讀

摘要:使用的方式來做采集,擁有豐富的插件。下面來演示使用插件抓取動態(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

GitHub: https://github.com/jae-jae/QueryList-PhantomJS

下載PhantomJS二進(jìn)制文件

PhantomJS官網(wǎng):http://phantomjs.org ,下載對應(yīng)平臺的PhantomJS二進(jìn)制文件。

插件API

QueryList 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

相關(guān)文章

  • QueryList 4.0 簡潔、優(yōu)雅、可擴(kuò)展的PHP采集工具(爬蟲)

    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...

    Astrian 評論0 收藏0
  • PHP使用QueryList輕松實(shí)現(xiàn)一個百度網(wǎng)盤資源搜索引擎

    摘要:使用的方式來做采集,擁有豐富的插件。下面來演示使用搜索引擎插件輕松實(shí)現(xiàn)站內(nèi)搜索。 QueryList使用jQuery的方式來做采集,擁有豐富的插件。 下面來演示QueryList使用Baidu搜索引擎插件輕松實(shí)現(xiàn)站內(nèi)搜索。 安裝 使用Composer安裝: 安裝QueryList composer require jaeger/querylist GitHub: https://git...

    dantezhao 評論0 收藏0
  • 那些 PHP 開發(fā)者可能用得上的工具

    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...

    JowayYoung 評論0 收藏0
  • PHP使用QueryList采集微信文章頁

    摘要:采集目標(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...

    AdolphLWQ 評論0 收藏0
  • laravel package收集

    摘要:查找保存下載用搭建自己的緩存?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); ...

    psychola 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<