puppteer的使用


官方文檔:Puppeteer

今天大概介紹一下我項目用到的puppeteer操作:

// 啟動瀏覽器
const browser = await puppeteer.launch({
    executablePath: 'xxxx', // 這里可以替換Chromium or Chrome的可執行文件,代替安裝puppeteer附帶的chrome
    args: [
        '--disabled-gpu', // 正常服務器連顯卡都沒有
        '--no-sandbox', // 非沙箱模式
    ]
})

// 打開頁面
const page = await browser.newPage();
await page.goto('file://xxxx/index.html');

// 設置頁面viewport大小為5頁A4的大小
const unitPX = 37.7813, pageSize = 5;
await page.setViewport({ width: Math.ceil(unitPX * 21), height: Math.ceil(unitPX * 29.7 * pageSize) })

// 截圖,獲得的res是pdf的二進制數據
// koa的話,這樣輸出:
// ctx.set('Content-Disposition', 'attachment; filename="index.pdf"');
// ctx.body = res
// preferCSSPageSize:true 按照css來渲染大小,不自動縮放
const res = await page.pdf({ preferCSSPageSize: true });

// 到瀏覽器的上下文去執行一些腳本,並且獲取最終返回的結果
const textList = page.evaluate(selector => {
    let domList = document.querySelectorAll(selector);
    return [...domList].map(txt => txt.innerText)
}, '#wrapper .text')

 

上面的操作其實已經可以完成相當一部分任務了!其他api看官方文檔查詢


免責聲明!

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



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