Spaces:
Runtime error
Runtime error
# 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. 更新相关文档 | |