首页 > 其他分享 >browserless 屏幕捕捉以及pdf 导出简单试用

browserless 屏幕捕捉以及pdf 导出简单试用

时间:2024-04-18 11:56:54浏览次数:27  
标签:browserless const await 试用 pdf local page browser

基于browserless 以及puppeteer 我们可以快速的进行屏幕捕捉生成图片以及导出pdf 文件,以下是一个简单的试用

环境准备

  • docker-compose
version: "3"
services:
   app:
      image: browserless/chrome:latest
      ports:
         - "3000:3000"
  • node app

package.json 基于express 的web 服务,同时使用了ncc 进行打包

{
  "name": "appv2",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "express": "^4.19.2",
    "puppeteer-core": "^22.6.5"
  },
  "scripts": {
    "dev":"node index.js",
    "build": "ncc build index.js -o dist"
  },
  "devDependencies": {
    "@vercel/ncc": "^0.38.1"
  }
}

index.js

包含一个image 以及pdf 的get 服务,我们需要传递的是website 查询字符串

const   express = require("express");
const  puppeteer = require("puppeteer-core");
 
const app = express();
 
const browserWSEndpoint = process.env.ENDPOINT ||  "ws://localhost:3000";
 
const getBrowser = async () => puppeteer.connect({ browserWSEndpoint });
 
app.get("/image", async (req, res) => {
  let  browser_local = null;
  const website  = req.query.website;
  await getBrowser()
    .then(async (browser) => {
     browser_local = browser
      const page = await browser.newPage();
      await page.setViewport({ width: 1280, height: 1024 });
      await page.goto(website,{
        waitUntil: ["load",'networkidle0'],
      });
      const screenshot = await page.screenshot({
        fullPage: true,
        captureBeyondViewport: true,
      });
      res.end(screenshot, "binary");
    })
    .catch((error) => {
      if (!res.headersSent) {
        res.status(400).send(error.message);
      }
    })
    .finally(() => browser_local && browser_local.close());
});
   
app.get("/pdf", async (req, res) => {
    let browser_local = null;
    const website  = req.query.website;
    await getBrowser()
      .then(async (browser) => {
        browser_local = browser
        const page = await browser.newPage();
        await page.setViewport({ width: 1280, height: 1024 });
        await page.goto(website,{
          waitUntil: ["load",'networkidle0'],
        });
        const screenshot = await page.pdf({
            displayHeaderFooter: true,
            format: "A4",
            printBackground: true,
        });
        res.end(screenshot, "binary");
      })
      .catch((error) => {
        if (!res.headersSent) {
          res.status(400).send(error.message);
        }
      })
      .finally(() => browser_local && browser_local.close());
  });
   
app.listen(8080, () => console.log("Listening on PORT: 8080"));
  • 效果

图片的


pdf 文件

说明

使用好browserless 可以做不少有意思的东西,值得尝试下

参考资料

https://pptr.dev/api/puppeteer.page.screenshot
https://pptr.dev/api/puppeteer.page.pdf
https://www.browserless.io/
https://github.com/browserless/browserless

标签:browserless,const,await,试用,pdf,local,page,browser
From: https://www.cnblogs.com/rongfengliang/p/18140991

相关文章

  • browserless 部署无头浏览器到docker中的工具
    browserless部署无头浏览器到docker中的工具包含的特性支持可配置的并行以及请求队列开箱即用的字体支持debug视图支持交互式的puppeteer调试器支持puppeteer以及playwright支持基于websocket以及restapi的请求控制(可以进行pdf生成,图片处理等)简单使用docker......
  • 【专题】2024年中国跨境进口电商B2C行业消费趋势白皮书报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35940原文出处:拓端数据部落公众号报告合集指出,随着中国经济开放程度的加深和全球化的推进,跨境进口电商行业规模持续扩大,抖音电商全球购等平台成为国际品牌进入中国市场的重要跳板。消费者对品质生活的追求日益提升,对产品的专业性和真实性要求更加......
  • 试用阿里云GPU服务器进行深度学习模型训练
    试用阿里云GPU服务器进行深度学习模型训练最近在用PyTorch时发现在本地训练模型速度一言难尽,然后发现阿里云可以白嫖gpu服务器,只要没有申请过PAI-DSW资源的新老用户都可以申请5000CU*H的免费额度,三个月内有效。阿里云免费试用活动页面一、申请试用并创建实例点击试用,完成注......
  • 【专题】中国纯电新能源汽车-市场发展和用车报告2024年报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35878原文出处:拓端数据部落公众号2023年,纯电车型在新能源市场中占据高达七成的市场份额,尽管技术挑战仍然存在。插混及增程车型在续航里程和驾驶体验上取得显著进步,但纯电车型仍占据主导地位。预计未来几年,插混及增程车型市场份额将持续攀升,为市场......
  • java生成图片和pdf
    FlyingSaucer方案FlyingSaucer开源协议的的坑flying-saucer-core-CorelibraryandJava2Drendering开源协议LGPLflying-saucer-pdf-PDFoutputusingOpenPDF(ex.iText2.x)开元协议MPL-2.0/LGPLflying-saucer-pdf-itext5-PDFoutputusingiText5.x(iTex......
  • 【专题】中国纯电新能源汽车-市场发展和用车报告2024年报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35878原文出处:拓端数据部落公众号2023年,纯电车型在新能源市场中占据高达七成的市场份额,尽管技术挑战仍然存在。插混及增程车型在续航里程和驾驶体验上取得显著进步,但纯电车型仍占据主导地位。预计未来几年,插混及增程车型市场份额将持续攀升,为市场......
  • 如何在PDF文件中删除限制,pdf删除打印权限,PDF删除编辑权限去除
    您是否有一个可以打开但无法编辑、打印或复制所选文本到剪贴板的AdobePDF文件?有一个简单的解决方案:只需单击几下,文件就可以不受保护。坏消息:您将需要软件。好消息:我们已经为您打造了一个。AdobePDF格式定义了几种保护方法。可以保护PDF文件不被打开(因此只需打开和查看文......
  • 黑盒测试用例设计技术-语法测试原则及案例
    语法测试用例设计原则选项导出原则:当语法规则强制选择时,为该选择的每个备选方案导出一个测试用例(“选项”)。最小与最大重复次数原则:当语法规则强制执行最小重复次数时,应为此导出至少两个测试用例:一个满足最小重复次数,另一个不满足(小于最小重复次数)。当语法规则允许最大重复......
  • 自己编写测试用例的思路
    题目将数组(1<=n<=100)中的每个整数循环右移m(m>=0)个位置输入:占二行,其中第1行:n和m两个数,n和m之间用空格分隔。第2行:数组A中的n个数,各数之间用空格分隔(第一个数之前和最后一个数之后无空格)。输出:占一行,数据间用一个空格分隔(第一个数之前和最后一个数之后无空格)。样例:1051......
  • 大模型时代的PDF解析工具
    去年(2023年)是大模型爆发元年。但是大模型具有两个缺点:缺失私有领域知识和幻觉。缺失私有领域知识是指大模型训练时并没有企业私有数据/知识,所以无法正确回答相关问题。并且在这种情况下,大模型会一本正经地胡说八道(即幻觉),给出错误的回答。那么如何解决这两个缺点?目前主要有两种方......