最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

環(huán)境依賴

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

puppeteer

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

npm i puppeteer --save

離線安裝Chromium

安裝puppeteer時(shí)會(huì)下載Chromium,因?yàn)楸娝苤脑蚩赡軙?huì)下載不下來(lái),因此下面提供了離線下載的方式。

跳過(guò)安裝chromium

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

npm i puppeteer --ignore-scripts

獲取需要下載的chromium版本號(hào)

打開(kāi)/node_modules/puppeteer/package.json搜索chromium_revision對(duì)應(yīng)的版本號(hào)

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

下載對(duì)應(yīng)版本的chromium

用上面的版本號(hào)替換掉下方花括號(hào)里的字符,比如我本地是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

解壓

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

spatie/browsershot

browsershot 是一個(gè)composer包,以前還用過(guò)的spatie/laravel-permission,都是同一團(tuán)隊(duì)制作的

composer require spatie/browsershot

使用

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

<?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é)

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

相關(guān)文章

  • 使PHP自定義函數(shù)返回多個(gè)值

    使PHP自定義函數(shù)返回多個(gè)值

    使PHP自定義函數(shù)返回多個(gè)值...
    2006-11-11
  • PHP實(shí)現(xiàn)圖片壓縮的兩則實(shí)例

    PHP實(shí)現(xiàn)圖片壓縮的兩則實(shí)例

    這篇文章主要介紹了PHP實(shí)現(xiàn)圖片壓縮的兩則實(shí)例,很有實(shí)用價(jià)值,值得借鑒學(xué)習(xí),需要的朋友可以參考下
    2014-07-07
  • KindEditor在php環(huán)境下上傳圖片功能集成的方法示例

    KindEditor在php環(huán)境下上傳圖片功能集成的方法示例

    這篇文章主要介紹了PHP環(huán)境下如何實(shí)現(xiàn)使用KindEditor編輯器上傳圖片,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • PHP使用正則表達(dá)式獲取微博中的話題和對(duì)象名

    PHP使用正則表達(dá)式獲取微博中的話題和對(duì)象名

    這篇文章主要介紹了PHP使用正則表達(dá)式獲取微博中的話題和對(duì)象名,涉及php正則匹配與字符串操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 淺談Laravel中如何對(duì)大文件進(jìn)行加密

    淺談Laravel中如何對(duì)大文件進(jìn)行加密

    在Laravel項(xiàng)目中,用戶可以上傳任何大小的文件,出于安全目的,需要對(duì)這些文件進(jìn)行靜態(tài)加密。Laravel提供encryption, 但它們主要用于加密值。 使用encrypt助手方法對(duì)像圖像文件進(jìn)行加密可以很好地工作,文件內(nèi)容需要加載到內(nèi)存中,對(duì)于大文件來(lái)說(shuō)是個(gè)問(wèn)題。
    2021-05-05
  • PHP自定義函數(shù)格式化json數(shù)據(jù)示例

    PHP自定義函數(shù)格式化json數(shù)據(jù)示例

    這篇文章主要介紹了PHP自定義函數(shù)格式化json數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了php通過(guò)自定義函數(shù)進(jìn)行字符串與數(shù)組的遍歷、轉(zhuǎn)換、計(jì)算等操作實(shí)現(xiàn)json數(shù)據(jù)格式化的功能,需要的朋友可以參考下
    2016-09-09
  • php簡(jiǎn)單實(shí)現(xiàn)多字節(jié)字符串翻轉(zhuǎn)的方法

    php簡(jiǎn)單實(shí)現(xiàn)多字節(jié)字符串翻轉(zhuǎn)的方法

    這篇文章主要介紹了php簡(jiǎn)單實(shí)現(xiàn)多字節(jié)字符串翻轉(zhuǎn)的方法,涉及php操作字符串的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • PHP文件后綴不強(qiáng)制為.php方法

    PHP文件后綴不強(qiáng)制為.php方法

    在本文中小編給大家整理了關(guān)于PHP文件后綴不強(qiáng)制為.php的操作方法和技巧,需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • php中的Base62類(適用于數(shù)值轉(zhuǎn)字符串)

    php中的Base62類(適用于數(shù)值轉(zhuǎn)字符串)

    以下是對(duì)php中Base62類的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08
  • php抓取網(wǎng)站圖片并保存的實(shí)現(xiàn)方法

    php抓取網(wǎng)站圖片并保存的實(shí)現(xiàn)方法

    這篇文章主要介紹了php抓取網(wǎng)站圖片并保存的實(shí)現(xiàn)方法,重點(diǎn)借鑒了匹配img標(biāo)簽和其src屬性正則的寫(xiě)法,封裝了一個(gè)php遠(yuǎn)程抓取圖片的類,感興趣的小伙伴們可以參考一下
    2015-10-10

最新評(píng)論

垣曲县| 仪陇县| 德惠市| 镇赉县| 盐边县| 大同市| 扶风县| 兰考县| 长沙县| 龙山县| 贵阳市| 调兵山市| 项城市| 内丘县| 龙岩市| 科技| 连云港市| 新宾| 闵行区| 荣成市| 柯坪县| 方正县| 桂平市| 象州县| 迁西县| 大城县| 土默特左旗| 揭西县| 佛冈县| 南岸区| 星子县| 溧阳市| 松原市| 太白县| 监利县| 临汾市| 子长县| 卫辉市| 长宁区| 尉犁县| 瓦房店市|