zoukankan      html  css  js  c++  java
  • 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({  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看官方文档查询

  • 相关阅读:
    第04组(64) 需求分析报告
    第04组(64) 团队展示
    结对编程作业
    Python单元测试框架 Unittest 的简单使用方法
    第一次个人编程作业
    第09组 Alpha冲刺 总结
    Swagger 工具集
    第09组 Alpha冲刺(6/6)
    第09组 Alpha冲刺(5/6)
    第09组 Alpha冲刺(4/6)
  • 原文地址:https://www.cnblogs.com/amiezhang/p/11343062.html
Copyright © 2011-2022 走看看