欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP使用puppeteer抓取JS渲染后的頁面內(nèi)容

 更新時間:2025年02月02日 15:32:17   作者:SoCai  
最近遇到一個問題,需要爬取js渲染后的網(wǎng)頁內(nèi)容,因此研究了下相關實現(xiàn)方式,主要借助puppeteer實現(xiàn),它是一個Node庫,要想在PHP中使用,還借助了spatie/browsershot

最近遇到一個問題,需要爬取js渲染后的網(wǎng)頁內(nèi)容,因此研究了下相關實現(xiàn)方式。主要借助puppeteer實現(xiàn),它是一個Node庫,要想在PHP中使用,還借助了spatie/browsershot。

環(huán)境依賴

環(huán)境要求
Node>=7.6.0
PHP>=7.1
PHP extensionphp_sockets, php_exif

puppeteer

Puppeteer是一個Node庫,我是直接在php項目下使用npm安裝這個庫,然后借助spatie/browsershot來調(diào)用它。讀者也可以新建一個node項目安裝這個庫,然后對外暴漏一個端口通過接口的方式傳遞url返回html內(nèi)容的方式實現(xiàn)。

npm i puppeteer --save

離線安裝Chromium

安裝puppeteer時會下載Chromium,因為眾所周知的原因可能會下載不下來,因此下面提供了離線下載的方式。

跳過安裝chromium

如果已經(jīng)運行上一步的命令并且正在下載Chromium了,那可以直接Ctrl+C停止任務。如果還沒運行,就使用下面的命令安裝。

npm i puppeteer --ignore-scripts

獲取需要下載的chromium版本號

打開/node_modules/puppeteer/package.json搜索chromium_revision對應的版本號

"puppeteer": {
    "chromium_revision": "756035",
    "firefox_revision": "latest"
}

下載對應版本的chromium

用上面的版本號替換掉下方花括號里的字符,比如我本地是win x64,下載地址就是https://commondatastorage.googleapis.com/chromium-browser-snapshots/Win_x64/756035/chrome-win.zip

mac版下載地址:
https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/{chromium版本}/chrome-mac.zip

windows 64位版本下載地址:
https://commondatastorage.googleapis.com/chromium-browser-snapshots/Win_x64/{chromium版本}/chrome-win.zip

windows 32位版本下載地址:
https://commondatastorage.googleapis.com/chromium-browser-snapshots/Win/{chromium版本}/chrome-win.zip

Linux X86版本下載地址:
https://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux/{chromium版本}/chrome-linux.zip

Linux X64版本下載地址:
https://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_x64/{chromium版本}/chrome-linux.zip

解壓

將下載下來的chromium安裝包解壓到puppeteer中的.local_chromium/win64-{chromium版本號}/目錄下。以我的為例就是/node_modules/puppeteer/.local_chromium/win64-756035/chrome-win/。搞定~

spatie/browsershot

browsershot 是一個composer包,以前還用過的spatie/laravel-permission,都是同一團隊制作的

composer require spatie/browsershot

使用

其實困難的部分就是找到合適的工具以及安裝工具,真正使用反而很簡單。下面列了一個很簡單的例子,更多方法還是去看官方文檔吧。

<?php
use Spatie\Browsershot\Browsershot;
class Spider
{
    /**
     * 獲取html內(nèi)容
     * @param $url
     * @return string
     */
    public static function getBodyHtml($url)
    {
        return Browsershot::url($url)->bodyHtml();
    }
}

 總結(jié)

到此這篇關于PHP使用puppeteer抓取JS渲染后的頁面內(nèi)容的文章就介紹到這了,更多相關PHP獲取JS渲染后的頁面內(nèi)容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • PHP登錄驗證碼的實現(xiàn)與使用方法

    PHP登錄驗證碼的實現(xiàn)與使用方法

    這篇文章主要介紹了PHP登錄驗證碼的實現(xiàn)與使用方法,結(jié)合實例形式較為詳細的分析了php驗證碼圖片的生成、顯示、判斷等相關步驟與使用技巧,需要的朋友可以參考下
    2016-07-07
  • 如何解決php domdocument找不到的問題

    如何解決php domdocument找不到的問題

    在本篇文章里小編給大家整理的是一篇關于php domdocument找不到的解決辦法,有需要的朋友們可以跟著學習參考下。
    2021-07-07
  • PHP樹形結(jié)構tree類用法示例

    PHP樹形結(jié)構tree類用法示例

    這篇文章主要介紹了PHP樹形結(jié)構tree類用法,結(jié)合實例形式分析了php無限分類樹tree.class.php的定義及使用相關操作技巧,需要的朋友可以參考下
    2019-02-02
  • PHP實現(xiàn)事件機制實例分析

    PHP實現(xiàn)事件機制實例分析

    這篇文章主要介紹了PHP實現(xiàn)事件機制的方法,實例分析了事件機制的原理與php的相關實現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • php常用數(shù)學函數(shù)匯總

    php常用數(shù)學函數(shù)匯總

    這篇文章主要介紹了php常用數(shù)學函數(shù),以實例形式匯總了常用數(shù)學函數(shù)的定義及用法實例,具有不錯的學習與借鑒價值,需要的朋友可以參考下
    2014-11-11
  • PHP 匿名函數(shù)與注意事項詳細介紹

    PHP 匿名函數(shù)與注意事項詳細介紹

    這篇文章主要介紹了PHP 匿名函數(shù)與注意事項詳細介紹的相關資料,匿名函數(shù)是PHP5.3引進來了,php5.3不但引進了匿名函數(shù)還有更多更好多新的特性了,下面我們一起來了解一下PHP匿名函數(shù)與注意事項詳解,需要的朋友可以參考下
    2016-11-11
  • PHP寫日志的實現(xiàn)方法

    PHP寫日志的實現(xiàn)方法

    這篇文章主要介紹了PHP寫日志的實現(xiàn)方法,是PHP程序設計中比較實用的技巧,需要的朋友可以參考下
    2014-11-11
  • PHP實現(xiàn)隨機發(fā)放撲克牌

    PHP實現(xiàn)隨機發(fā)放撲克牌

    這篇文章主要為大家詳細介紹了PHP實現(xiàn)隨機發(fā)放撲克牌,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • php+MySql實現(xiàn)登錄系統(tǒng)與輸出瀏覽者信息功能

    php+MySql實現(xiàn)登錄系統(tǒng)與輸出瀏覽者信息功能

    這篇文章主要介紹了php+MySql實現(xiàn)登錄系統(tǒng)與輸出瀏覽者信息功能 的相關資料,需要的朋友可以參考下
    2016-07-07
  • zend framework配置操作數(shù)據(jù)庫實例分析

    zend framework配置操作數(shù)據(jù)庫實例分析

    zend framework項目建立后,看了下zend framework配置操作數(shù)據(jù)庫,本文將詳細介紹,需要了解的朋友可以參考下
    2012-12-12

最新評論