版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、puppeteer 入門教程puppeteer 是一個(gè)node庫(kù),他提供了一組用來(lái)操縱chrome的api, 通俗來(lái)說(shuō)就是一個(gè) headless chrome掃瞄器 (固然你也可以配置成有ui的,默認(rèn)是沒(méi)有的)。既然是掃瞄器,那么我們手工可以在掃瞄器上做的事情 puppeteer 都能勝任, 另外,puppeteer 翻譯成中文是木偶意思,所以聽(tīng)名字就知道,操縱起來(lái)很便利,你可以很便利的操縱她去實(shí)現(xiàn):1) 生成網(wǎng)頁(yè)截圖或者 pdf2) 高級(jí)爬蟲,可以爬取大量異步渲染內(nèi)容的網(wǎng)頁(yè)3) 模擬鍵盤輸入、表單自動(dòng)提交、登錄網(wǎng)頁(yè)等,實(shí)現(xiàn) ui 自動(dòng)化測(cè)試4) 捕捉站點(diǎn)的時(shí)光線,以便追蹤你的網(wǎng)站,協(xié)助分析網(wǎng)
2、站性能問(wèn)題假如你用過(guò) phantomjs 的話,你會(huì)發(fā)覺(jué)她們有點(diǎn)類似,但puppeteer是chrome官方團(tuán)隊(duì)舉行維護(hù)的,用俗話說(shuō)就是有娘家的人,前景更好。查看 puppeteer 的官方 api 你會(huì)發(fā)覺(jué)滿屏的 async, await 之類,這些都是 es7 的規(guī)范,所以你需要:nodejs 的版本不能低于 v7.6.0, 需要支持 async, await.需要最新的 chrome driver, 這個(gè)你在通過(guò) npm 安裝 puppeteer 的時(shí)候系統(tǒng)會(huì)自動(dòng)下載的先開(kāi)看看正式的入門的 demo上面這段代碼就實(shí)現(xiàn)了網(wǎng)頁(yè)截圖,先也許解讀一下上面幾行代碼:先通過(guò) puppeteer.la
3、unch() 創(chuàng)建一個(gè)掃瞄器實(shí)例 browser 對(duì)象然后通過(guò) browser 對(duì)象創(chuàng)建頁(yè)面 page 對(duì)象然后 page.goto() 跳轉(zhuǎn)到指定的頁(yè)面調(diào)用 page.screenshot() 對(duì)頁(yè)面舉行截圖關(guān)閉掃瞄器是不是覺(jué)得好容易? 反正我是覺(jué)得比 phantomjs 容易,至于跟 selenium-webdriver 比起來(lái), 那更不用說(shuō)了。下面就介紹一下 puppeteer 的常用的幾個(gè) api。用法 puppeteer.launch() 運(yùn)行 puppeteer,它會(huì) return 一個(gè) promise,用法 then 辦法獵取 browser 實(shí)例, 固然高版本的 的 nodej
4、s 已經(jīng)支持 await 特性了,所以上面的例子用法 await 關(guān)鍵字,這一點(diǎn)需要特別解釋一下,puppeteer 幾乎全部的操作都是 異步的, 為了用法大量的 then 使得代碼的可讀性降低,本文全部 demo 代碼都是用 async, await 方式實(shí)現(xiàn)。這個(gè) 也是 puppeteer 官方推舉的寫法。對(duì) async/await 一臉懵逼的學(xué)生狠狠的戳這里options 參數(shù)詳解參數(shù)名稱參數(shù)類型參數(shù)解釋ignorehttpserrorsboolean在哀求的過(guò)程中是否忽視 https 報(bào)錯(cuò)信息,默認(rèn)為 falseheadlessboolean是否以無(wú)頭的模式運(yùn)行 chrome, 也就是
5、不顯示 ui, 默認(rèn)為 trueexecutablepathstring可執(zhí)行文件的路勁,puppeteer 默認(rèn)是用法它自帶的 chrome webdriver, 假如你想指定一個(gè)自己的 webdriver 路徑,可以通過(guò)這個(gè)參數(shù)設(shè)置slowmonumber使 puppeteer 操作減速,單位是毫秒。假如你想看看 puppeteer 的囫圇工作過(guò)程,這個(gè)參數(shù)將十分實(shí)用。argsarray(string)傳遞給 chrome 實(shí)例的其他參數(shù),比如你可以用法–ash-host-window-bounds=1024x768 來(lái)設(shè)置掃瞄器窗口大小。更多參數(shù)參數(shù)列表可以參考這里h
6、andlesigintboolean是否允許通過(guò)進(jìn)程信號(hào)控制 chrome 進(jìn)程,也就是說(shuō)是否可以用法 ctrl+c 關(guān)閉并退出掃瞄器。timeoutnumber等待 chrome 實(shí)例啟動(dòng)的最長(zhǎng)時(shí)光。默認(rèn)為30000(30秒)。假如傳入 0 的話則不限制時(shí)光dumpioboolean是否將掃瞄器進(jìn)程stdout和stderr導(dǎo)入到process.stdout和process.stderr中。默認(rèn)為false。userdatadirstring設(shè)置用戶數(shù)據(jù)名目,默認(rèn)linux 是在 ——/.config 名目,window 默認(rèn)在 c:usersuser
7、appdatalocalgooglechromeuser data, 其中 user 代表當(dāng)前登錄的用戶名envobject指定對(duì)chromium可見(jiàn)的環(huán)境變量。默認(rèn)為process.env。devtoolsboolean是否為每個(gè)選項(xiàng)卡自動(dòng)打開(kāi)devtools面板, 這個(gè)選項(xiàng)惟獨(dú)當(dāng) headless 設(shè)置為 false 的時(shí)候有效當(dāng) puppeteer 銜接到一個(gè) chrome 實(shí)例的時(shí)候就會(huì)創(chuàng)建一個(gè) browser 對(duì)象,有以下兩種方式:puppeteer.launch 和 puppeteer.connect.下面這個(gè) demo 實(shí)現(xiàn)斷開(kāi)銜接之后重新銜接掃瞄器實(shí)例browser 對(duì)象 api辦法名稱返回值解釋browser.close()promise關(guān)閉掃瞄器browser.disconnect()void斷開(kāi)掃瞄器銜接browser.newpage()promise(page)創(chuàng)建一個(gè) page 實(shí)例browser.pages()promise(array(page)獵取全部打開(kāi)的 page 實(shí)例browser.targets()array(target)獵取全部活動(dòng)的 targetsbrows
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度外賣配送服務(wù)承包合同(含食品安全)
- 2025年度個(gè)人獨(dú)院買賣合同(含租賃權(quán))協(xié)議書
- 課題申報(bào)參考:民族基層地區(qū)檢察聽(tīng)證實(shí)質(zhì)化改革路徑構(gòu)建研究
- 二零二五年度智能停車場(chǎng)租賃與維護(hù)一體化合同
- 2025年個(gè)人擔(dān)保居間合同標(biāo)準(zhǔn)實(shí)施范本2篇
- 二零二五年度女方違反離婚協(xié)議財(cái)產(chǎn)分割及房產(chǎn)過(guò)戶合同4篇
- 2025年度個(gè)人戶外裝備分期購(gòu)買合同
- 湖北省黃岡市重點(diǎn)中學(xué)高三上學(xué)期期末考試語(yǔ)文試題(含答案)
- 2025版美容院美容師團(tuán)隊(duì)建設(shè)聘用標(biāo)準(zhǔn)合同4篇
- 二零二五年度牧業(yè)產(chǎn)業(yè)扶貧項(xiàng)目承包合同范本3篇
- 橋本甲狀腺炎-90天治療方案
- 《量化交易之門》連載27:風(fēng)險(xiǎn)的角度談收益MAR和夏普比率
- (2024年)安全注射培訓(xùn)課件
- 2024版《建設(shè)工程開(kāi)工、停工、復(fù)工安全管理臺(tái)賬表格(流程圖、申請(qǐng)表、報(bào)審表、考核表、通知單等)》模版
- 2024年廣州市高三一模普通高中畢業(yè)班高三綜合測(cè)試一 物理試卷(含答案)
- 部編版《道德與法治》六年級(jí)下冊(cè)教材分析萬(wàn)永霞
- 粘液腺肺癌病理報(bào)告
- 酒店人防管理制度
- 油田酸化工藝技術(shù)
- 上海高考英語(yǔ)詞匯手冊(cè)列表
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)五 其他內(nèi)容類型的生產(chǎn)
評(píng)論
0/150
提交評(píng)論