项目简介
本项目是一个基于Node.js和Puppeteer框架开发的截图服务系统。借助Puppeteer的能力,系统能够方便地生成网页的屏幕快照,为用户提供便捷的网页截图功能。
项目的主要特性和功能
- 利用Node.js提供稳定的后端服务支持。
- 通过Puppeteer框架精准生成网页屏幕快照。
- 支持滚动截屏,可完整截取长网页内容。
- 允许自定义截屏的宽度和高度。
- 提供简单易用的API接口,通过POST请求即可实现截图操作。
- 配置了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】