国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php使用QueryList輕松采集JavaScript動態渲染頁面

Jason / 3008人閱讀

摘要:使用的方式來做采集,擁有豐富的插件。下面來演示使用插件抓取動態創建的頁面內容。插件使用瀏覽器打開連接使用以采集今日頭條手機版為例,今日頭條手機版基于框架,內容是純動態渲染出來的。

QueryList使用jQuery的方式來做采集,擁有豐富的插件。

下面來演示QueryList使用PhantomJS插件抓取JS動態創建的頁面內容。

安裝

使用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二進制文件

PhantomJS官網:http://phantomjs.org ,下載對應平臺的PhantomJS二進制文件。

插件API

QueryList 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 4.0 簡潔、優雅、可擴展的PHP采集工具(爬蟲)

    QueryList 簡介 QueryList是一套簡潔、優雅、可擴展的PHP采集工具(爬蟲),基于phpQuery。 特性 擁有與jQuery完全相同的CSS3 DOM選擇器 擁有與jQuery完全相同的DOM操作API 擁有通用的列表采集方案 擁有強大的HTTP請求套件,輕松實現如:模擬登陸、偽造瀏覽器、HTTP代理等意復雜的網絡請求 擁有亂碼解決方案 擁有強大的內容過濾功能,可使用jQue...

    Astrian 評論0 收藏0
  • PHP使用QueryList輕松實現一個百度網盤資源搜索引擎

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

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

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

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

    摘要:采集目標微信文章頁標題內容發布時間作者等信息。安裝微信采集代碼采集規則可以很輕松的就寫出采集代碼出來,來看看運行結果和預期一樣正確采集到了內容,但是內容亂碼了。 采集目標 微信文章頁標題、內容、發布時間、作者等信息。 采集示例URL https://mp.weixin.qq.com/s?src=11×tamp=1523173327&ver=803&signature=6PCx...

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

    摘要:查找保存下載用搭建自己的緩存倉庫權限管理的好選擇基于封裝的后臺管理系統,支持手機和端訪問支付寶風格的驗證器后臺系統微信接口的部署腳本開發的博客系統百度推送自動記錄用戶行為擴展一個項目管理系統根據生成對應導航的狀態 1.debug https://github.com/barryvdh/l... showImg(https://segmentfault.com/img/bVmhWL); ...

    psychola 評論0 收藏0

發表評論

0條評論

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