# 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= ``` 参数说明: - `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. 更新相关文档