国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

puppeteer 使用體驗(yàn)

2023-05-04 21:46 作者:小老虎Tigger  | 我要投稿

puppeteer?其實(shí)已經(jīng)用過(guò)很多次了,記錄一下使用的一些體會(huì)。

首先它的功能和名稱非常匹配,puppeteer是一個(gè)Node.js的一個(gè)庫(kù),它可以使我們?cè)趎ode中使用js代碼來(lái)控制一個(gè)chromium瀏覽器。我們的一些手動(dòng)的操作基本都能通過(guò)puppeteer來(lái)實(shí)現(xiàn),所以puppeteer通常也被用來(lái)做自動(dòng)化測(cè)試。由于puppeteer是直接操作的瀏覽器,所以更容易實(shí)現(xiàn)一些爬蟲的功能(不會(huì)涉及cookie、跨域等問(wèn)題)。

puppeteer的API非常清晰?https://pptr.dev/api。

我們?nèi)绻枰L問(wèn)一個(gè)網(wǎng)站,通常需要以下的步驟來(lái)實(shí)現(xiàn),可以看到代碼層面和我們?nèi)粘5牟僮鬟壿嫹浅O嗨啤?/p>


我們?nèi)绻胍僮?、獲取網(wǎng)頁(yè)中的一些內(nèi)容,puppeteer的API設(shè)計(jì)也和dom的API非常相似。

如果想要操作dom節(jié)點(diǎn),我們可以使用$、$$方法,類似于document.querySelector、document.querySelectorAll。但是我們需要注意的是$、$$返回的并不是dom節(jié)點(diǎn),而是Promise<ElementHandle<NodeFor<Selector>>?|?null>。我們可以通過(guò)ElementHandle去執(zhí)行一些click、focus、type等操作。puppeteer.elementhandle

Page.$() method

Runs?document.querySelector?within the page. If no element matches the selector, the return value resolves to?null.

Page.$$() method

The method runs?document.querySelectorAll?within the page. If no elements match the selector, the return value resolves to?[].


如果我們需要獲取dom中的一些數(shù)據(jù),需要使用$eval、$$eval。

Page.$eval() method

This method runs?document.querySelector?within the page and passes the result as the first argument to the?pageFunction.

$eval函數(shù)的pageFunction相當(dāng)于是在chromium瀏覽器中運(yùn)行,然后將返回的結(jié)果提供給了我們的nodejs,不能直接將dom返回,因?yàn)閚odejs中執(zhí)行的代碼沒(méi)有辦法保持對(duì)chromium瀏覽器中對(duì)象的引用,如果想要訪問(wèn)chromium頁(yè)面中的對(duì)象、方法,都需要使用puppetter提供的API來(lái)操作。這種方式,有點(diǎn)類似于electron。


puppeteer還提供了非常多的功能,可以植入腳本,切換frame、截圖、轉(zhuǎn)換頁(yè)面保存為PDF等等。我們?cè)谑褂眠^(guò)程中,要簡(jiǎn)單理解puppetter的運(yùn)行流程,我們的nodejs代碼是運(yùn)行在node中,而我們使用的puppetter,則是將一些代碼通過(guò)puppetter運(yùn)行在了chromium瀏覽器中,這兩者是通過(guò)puppetter來(lái)橋接的。


puppeteer 使用體驗(yàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
双流县| 云林县| 蓝田县| 赤城县| 屏边| 昌宁县| 蒙山县| 三门峡市| 利津县| 东港市| 伊宁市| 馆陶县| 金沙县| 舞钢市| 津南区| 桂阳县| 沁源县| 万山特区| 宿松县| 绥德县| 阳信县| 吉木乃县| 荆门市| 阿勒泰市| 务川| 涟源市| 元氏县| 井冈山市| 敦煌市| 莆田市| 宜章县| 千阳县| 满洲里市| 广饶县| 黄浦区| 丰原市| 翼城县| 金华市| 高唐县| 恩施市| 定安县|