windowgame / README.md
WACATW's picture
Upload README.md
e322ba9 verified
|
Raw History Blame Contribute Delete
4.06 kB
---
title: 云浏览器 - Cloud Browser
emoji: 🌐
colorFrom: indigo
colorTo: purple
sdk: docker
app_file: app.py
pinned: false
---
# 云浏览器 - Cloud Browser
一个基于 Hugging Face Spaces 的云浏览器应用,在服务器端运行浏览器,用户本地只需要看画面和操作,就像云电脑一样。
## ✨ 功能特性
- 🌐 **云端浏览器**:所有网页都在服务器端加载和渲染
- 🖱️ **点击操作**:直接在画面上点击,就像操作真实浏览器
- ⌨️ **键盘输入**:点击画面后直接打字,文字输入到云端浏览器
- 📜 **滚动页面**:使用鼠标滚轮在画面上滚动
- 🎮 **玩网页游戏**:输入游戏网址,在云端运行,本地不占资源
- 🎨 **科技感界面**:深色主题,渐变设计,现代化 UI
- 📊 **实时状态**:显示当前网址、页面标题、延迟等信息
## 🚀 部署到 Hugging Face Spaces
### 方法:Docker 部署
1. 在 Hugging Face 创建一个新的 Space,选择 **Docker** 作为 SDK
2. 将本项目的所有文件上传到 Space 仓库
3. 等待部署完成(首次部署会比较慢,需要下载浏览器)
4. 访问你的 Space 即可使用
### 注意事项
- 首次启动需要下载 Chromium 浏览器,可能需要 1-2 分钟
- 建议使用至少 2GB 内存的 Space 配置
- 浏览器是单实例的,所有用户共享同一个浏览器会话
## 💻 本地运行
```bash
# 安装依赖
pip install -r requirements.txt
# 安装浏览器
playwright install chromium
playwright install-deps chromium
# 运行
python app.py
```
访问 http://localhost:7860 即可使用。
## ⚙️ 环境变量配置
| 变量名 | 说明 | 默认值 |
|--------|------|--------|
| `PORT` | 服务端口 | 7860 |
| `VIEWPORT_WIDTH` | 浏览器视口宽度 | 1280 |
| `VIEWPORT_HEIGHT` | 浏览器视口高度 | 800 |
| `DEFAULT_URL` | 默认打开的网址 | https://www.google.com |
## 🎯 使用说明
### 访问网页
1. 在地址栏输入网址(例如 google.com)
2. 按回车或点击前往按钮
3. 等待页面加载完成
### 点击操作
- 直接在浏览器画面上点击
- 点击位置会精确映射到云端浏览器
### 键盘输入
1. 点击浏览器画面获得焦点
2. 直接打字,文字会输入到云端浏览器
3. 支持 Enter、Backspace、方向键等特殊按键
### 滚动页面
- 使用鼠标滚轮在画面上滚动
- 滚动会同步到云端浏览器
### 浏览器控制
- 后退按钮:返回上一页
- 前进按钮:前进到下一页
- 刷新按钮:重新加载当前页面
## 🏗️ 技术栈
- **后端**:Flask + Playwright (Python)
- **前端**:HTML + CSS + JavaScript
- **浏览器引擎**:Chromium (Playwright 驱动)
- **部署**:Docker + Hugging Face Spaces
## ⚠️ 注意事项
### 延迟问题
- 每次操作都需要发送请求到服务器并等待截图返回
- 会有一定的延迟(通常 100-500ms)
- 不适合需要快速反应的游戏
### 资源消耗
- 浏览器运行会占用较多内存
- Hugging Face Spaces 免费版可能会有限制
### 安全性
- 用户可以访问任意网站
- 所有用户共享同一个浏览器实例
- 不建议在公共 Space 中登录重要账号
### 音频问题
- 当前版本不支持音频传输
- 网页视频和游戏没有声音
## 🔧 工作原理
```
用户操作 → 发送到服务器 → Playwright 执行 → 截图 → 返回给用户显示
```
1. 服务器端运行无头 Chromium 浏览器
2. 用户在前端点击/输入/滚动
3. 操作通过 HTTP 请求发送到后端
4. Playwright 在浏览器中模拟执行操作
5. 截取当前页面截图
6. 将截图返回给前端显示
## 📝 改进方向
- [ ] 使用 WebSocket 替代 HTTP,降低延迟
- [ ] 支持多用户隔离(每个用户独立浏览器)
- [ ] 添加音频传输支持
- [ ] 优化截图传输(增量更新、视频流等)
- [ ] 添加书签/历史记录功能
- [ ] 支持调整视口大小
- [ ] 添加密码保护
- [ ] 支持文件上传下载
## 📄 License
MIT License