littlebot
Published on 2025-04-16 / 0 Visits
0

【源码】基于Node.js和Puppeteer框架的截图服务系统

项目简介

本项目是一个基于Node.js和Puppeteer框架开发的截图服务系统。借助Puppeteer的能力,系统能够方便地生成网页的屏幕快照,为用户提供便捷的网页截图功能。

项目的主要特性和功能

  1. 利用Node.js提供稳定的后端服务支持。
  2. 通过Puppeteer框架精准生成网页屏幕快照。
  3. 支持滚动截屏,可完整截取长网页内容。
  4. 允许自定义截屏的宽度和高度。
  5. 提供简单易用的API接口,通过POST请求即可实现截图操作。
  6. 配置了pm2,支持在开发、测试、UAT、生产等多环境部署。

安装使用步骤

前提条件

已下载项目源码文件,且本地已安装Node.js环境。

安装依赖

在项目根目录下执行以下命令: bash pnpm i

本地运行

使用以下命令启动项目: bash pnpm dev

项目打包

执行以下命令进行打包: bash pnpm build

服务器部署

将打包后的dist目录文件上传到Linux服务器的网站域名目录下。执行以下命令安装依赖和打包: bash pnpm i pnpm build 使用pm2启动项目,根据不同环境选择相应参数: bash pm2 start ecosystem.config.js --env dev pm2 start ecosystem.config.js --env test pm2 start ecosystem.config.js --env uat pm2 start ecosystem.config.js --env prod

字体和浏览器下载

在服务器上执行以下命令下载字体和浏览器: bash sudo yum install wqy-microhei-fonts.noarch -y wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

端口放行

在服务器上放行对应端口(如开发环境43365、UAT环境43369、生产环境43367)。

接口使用

通过POST请求调用截图接口: bash POST http://<服务地址>:<端口号>/screenshot 请求参数: | key | 类型 | 默认值 | 说明 | | -------- | -------- | ---------- | ---------------------------------------- | | fullPage | boolean | true | 是否滚动截屏 | | width | number | - | 自定义截屏宽度, 默认不设置 | | height | number | - | 自定义截屏高度 ,默认不设置 | | - | - | - | 可自定义其他参数,会拼接在打开页面 url 上 |

请求体参数: | key | 类型 | 默认值 | 说明 | | --------- | -------- | ---------- | -------------------------------- | | url | string | '' | 打开页面 url,必传 | | className | string | - | 等待元素加载完成,开始截屏,可传 |

示例请求: js axios.post('http://service.alongweb.top:43367/screenshot', { url: 'http://www.alongweb.top' })

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】