Puppeteer筆記(二):Puppeteer安裝及實例Demo


Puppeteer系列

1、Puppeteer筆記(一):Puppeteer簡介

2、Puppeteer筆記(二):Puppeteer安裝及實例Demo

3、Puppeteer筆記(三):Puppeteer獲取元素及元素屬性 

4、Puppeteer筆記(四):Puppeteer模擬鍵盤 

5、Puppeteer筆記(五):Puppeteer文件上傳

6、Puppeteer筆記(六):Puppeteer切換frame操作 

7、Puppeteer筆記(七):Puppeteer切換瀏覽器TAB頁 

8、Puppeteer筆記(八):Puppeteer執行自定義Javascript方法 

 一、Puppeteer環境准備

1、Puppeteer環境要求:

查看 Puppeteer 的官方 API 你會發現滿屏的 async, await 之類,這些都是 ES7 的規范,所以你需要:

(1)Nodejs 的版本不能低於 v7.6.0, 需要支持 async, await.

(2)需要最新的 chrome driver, 這個你在通過 npm 安裝 Puppeteer 的時候系統會自動下載的

2、Puppeteer環境准備

(1)安裝node,官網地址:https://nodejs.org/zh-cn/

並校驗node是否安裝成功:node -v

(2)安裝Puppeteer:npm install puppeteer --save
安裝puppeteer時會自帶安裝內置Chromium,如Chromium下載失敗,可手動下載Chromium。

二、快速上手實例Demo

測試功能:打開百度首頁,輸入“hello world”,搜索查詢並截圖。

創建Test.js,輸入以下代碼: 

 1 //引入puppeteer
 2 const puppeteer = require('puppeteer');
 3 /*
 4 創建一個Browser瀏覽器實例,並設置瀏覽器實例相關參數
 5 headless: 是否在無頭模式下運行瀏覽器,默認是true
 6 defaultViewport:設置頁面視口大小,默認800*600,如果為null的話就禁用視圖口
 7 args:瀏覽器實例的其他參數
 8 defaultViewport: null, args: ['--start-maximized']:最大化視圖窗口展示
 9 ignoreDefaultArgs: ['--enable-automation']:
10 禁止展示chrome左上角有個Chrome正受自動軟件控制,避免puppeteer被前端JS檢測到
11 */
12 puppeteer.launch({
13     headless: false,
14     defaultViewport: null,
15     args: ['--start-maximized'],
16     ignoreDefaultArgs: ['--enable-automation']
17 }).then(async browser => {
18     //創建一個Page實例
19     const page = await browser.newPage();
20     //打開百度首頁
21     await page.goto('https://www.baidu.com');
22     //定位輸入框元素
23     const input_area = await page.$('#kw');
24     //在輸入框元素中輸入"hello world"
25     await input_area.type("hello world");
26     //定位搜索按鈕元素
27     const search_btn = await page.$('#su');
28     //點擊按鈕元素
29     await search_btn.click();
30     //等待3s
31     await page.waitFor(3000);
32     //截圖並在根目錄保存
33     await page.screenshot({
34         path: 'baidu.png'
35     });
36     //關閉Chromium
37     await browser.close();
38 });


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM