|
# Web Screenshot Service
|
|
|
|
一个基于 Deno 的网页截图服务。
|
|
|
|
## 功能特点
|
|
|
|
- 🖥️ 网页 URL 解析与展示
|
|
- 📸 高质量网页截图功能
|
|
- 🚀 基于 Docker 快速部署
|
|
- 💻 支持 1920x1080 高清分辨率
|
|
|
|
## 快速开始
|
|
|
|
1. 构建 Docker 镜像:
|
|
bash
|
|
docker build -t web-screenshot .
|
|
|
|
2. 运行容器:
|
|
docker run -p 7860:7860 web-screenshot
|
|
|
|
3. 访问服务:
|
|
- 网页界面: `http://localhost:7860`
|
|
- 截图API: `http://localhost:7860/screenshot?url=https://example.com`
|
|
|
|
### 本地开发
|
|
|
|
1. 安装依赖:
|
|
- Deno: https://deno.land/#installation
|
|
- Node.js: https://nodejs.org/
|
|
- Puppeteer: `npm install puppeteer`
|
|
|
|
2. 运行服务:
|
|
- bash:deno/README.md
|
|
deno run -A main.ts
|
|
|
|
## API 说明
|
|
|
|
### 获取网页截图
|
|
|
|
```http
|
|
GET /screenshot?url=<target_url>
|
|
```
|
|
|
|
参数说明:
|
|
- `url`: 需要截图的目标网页地址(必填)
|
|
|
|
返回格式:
|
|
- Content-Type: image/png
|
|
- 分辨率: 1920x1080
|
|
|
|
示例:
|
|
|
|
```bash
|
|
curl "http://localhost:7860/screenshot?url=https://example.com" > screenshot.png
|
|
```
|
|
|
|
### 主页 URL 解析
|
|
|
|
```http
|
|
GET /
|
|
```
|
|
|
|
返回网页解析工具界面,支持:
|
|
- URL 文本解析
|
|
- 自动协议补全
|
|
- 一键截图功能
|
|
- 新窗口打开链接
|
|
|
|
## 技术架构
|
|
|
|
- **运行时**: Deno
|
|
- **开发语言**: TypeScript
|
|
- **截图引擎**: Puppeteer
|
|
- **容器化**: Docker
|
|
- **基础镜像**: Ubuntu
|
|
|
|
## 目录结构
|
|
|
|
```
|
|
.
|
|
├── Dockerfile # Docker 构建文件
|
|
├── README.md # 项目说明文档
|
|
├── main.ts # 主程序入口
|
|
└── index.html # 前端界面
|
|
```
|
|
|
|
## 环境要求
|
|
|
|
- Deno 1.x
|
|
- Node.js 14+
|
|
- Docker (可选)
|
|
- 内存: 建议 2GB 以上
|
|
- 磁盘空间: 至少 1GB 可用空间
|
|
|
|
## 常见问题
|
|
|
|
1. **Q: 截图服务返回 500 错误**
|
|
- A: 检查目标网站是否可访问
|
|
- A: 确认容器内存限制是否充足
|
|
|
|
2. **Q: Docker 构建失败**
|
|
- A: 确保网络连接正常
|
|
- A: 尝试清理 Docker 缓存后重新构建
|
|
|
|
## 开发计划
|
|
|
|
- [ ] 支持自定义截图尺寸
|
|
- [ ] 添加截图延时选项
|
|
- [ ] 支持 PDF 导出
|
|
- [ ] 添加批量截图功能
|
|
- [ ] 优化图片压缩选项
|
|
|
|
## 贡献指南
|
|
|
|
欢迎提交 Issue 和 Pull Request。在提交 PR 前请确保:
|
|
|
|
1. 代码遵循项目编码规范
|
|
2. 添加必要的测试用例
|
|
3. 更新相关文档
|
|
|
|
|