MuTe43/Discord-member-scraper
GitHub: MuTe43/Discord-member-scraper
自托管 Discord 服务器成员采集与分析工具,支持全量枚举(含离线用户)、标签备注及数据导出。
Stars: 0 | Forks: 0
自托管 Discord 成员爬虫,支持实时 Gateway API 访问。
抓取所有服务器成员(即使离线)· 标签与注释 · 导出 CSV/JSON · 精美深色 UI
## 🖼️ 截图
## ❓ 为什么选择 Server Lens?
Discord 内置的成员列表只显示在线用户,需要缓慢滚动加载,而且没有提供任何注释工具。**Server Lens** 通过 Discord 的 Gateway API 抓取*完整*的成员列表 —— 包括离线成员 —— 并为你提供一个精美的界面来搜索、标签、注释和导出数据。
| 功能 | Discord 内置 | Server Lens |
|---------|:---:|:---:|
| 查看**所有**成员(包括离线) | ❌ | ✅ |
| 导出为 CSV / JSON | ❌ | ✅ |
| 为成员添加自定义标签 | ❌ | ✅ |
| 为成员添加个人备注 | ❌ | ✅ |
| 按名称搜索和过滤 | 缓慢滚动 | ⚡ 即时 |
| 按加入日期排序 | ❌ | ✅ |
| 按 Discord 角色过滤 | ❌ | ✅ |
| 自托管,数据保留在本地 | 不适用 | ✅ |
## ✨ 功能特性
- 🔑 **基于 Token 的认证** — 粘贴你的 Discord 用户 token 即可连接
- 🔭 **全量成员抓取** — 通过 Gateway 获取所有成员(op 14 范围扫描 + op 8 搜索扫描)
- 🤖 **机器人过滤** — 自动排除机器人账号
- 🏷️ **Quirk 标签** — 为任何成员添加自定义标签(例如“潜水党”、“版主”、“有趣”)
- 📝 **备注** — 为每个成员编写自由格式的备注,自动保存
- 📦 **导出** — 将成员列表下载为 CSV 或 JSON
- 🔄 **重新抓取** — 随时刷新,现有的标签和备注会被保留
- 🔍 **搜索与过滤** — 即时搜索,按名称/加入日期排序,按标签或角色过滤
- 🎨 **精美深色 UI** — 受 Discord 启发的设计美学,采用 JetBrains Mono 字体
- 🔒 **隐私优先** — 100% 自托管,你的 token 和数据永远不会离开你的设备
## 🚀 快速开始
### 🐳 Docker(推荐)
```
git clone https://github.com/MuTe43/Discord-member-scraper.git
cd Discord-member-scraper
docker compose up
```
打开 [http://localhost:8000](http://localhost:8000) 即可完成。
### 🐍 手动设置
```
git clone https://github.com/MuTe43/Discord-member-scraper.git
cd Discord-member-scraper
pip install -r requirements.txt
cd backend
python main.py
```
在浏览器中打开 [http://localhost:8000](http://localhost:8000)。
## 🔑 如何获取你的 Discord Token
1. 在**浏览器**中打开 Discord → [discord.com/app](https://discord.com/app)
2. 打开开发者工具(DevTools)→ `F12`
3. 转到 **Network** 选项卡
4. 点击任意内容或发送一条消息
5. 找到发往 `discord.com/api` 的请求
6. 在请求头(Request Headers)中,复制 **Authorization** 的值
## 🏗️ 架构
```
┌──────────────────────────────────────────────┐
│ Browser │
│ ┌──────────┐ ┌──────────┐ ┌───────────┐ │
│ │ index.html│ │ style.css│ │ app.js │ │
│ └──────────┘ └──────────┘ └───────────┘ │
└──────────────────────┬───────────────────────┘
│ HTTP / SSE
┌──────────────────────┴───────────────────────┐
│ FastAPI Backend │
│ ┌──────────┐ ┌──────────┐ ┌───────────┐ │
│ │ main.py │ │scraper.py│ │gateway.py │ │
│ │ (routes) │ │ (scrape) │ │ (session) │ │
│ └──────────┘ └──────────┘ └───────────┘ │
│ ┌──────────┐ ┌──────────────────────────┐ │
│ │models.py │ │ data.json (local) │ │
│ └──────────┘ └──────────────────────────┘ │
└──────────────────────┬───────────────────────┘
│ WebSocket + REST
┌───────┴────────┐
│ Discord API v9 │
└────────────────┘
```
## 📡 API 接口
| 方法 | 接口 | 描述 |
|--------|----------|-------------|
| `POST` | `/api/validate-token` | 验证 token 并获取用户的 guilds |
| `POST` | `/api/scrape` | 抓取服务器成员列表(SSE 流) |
| `GET` | `/api/servers` | 获取所有已抓取的服务器 |
| `GET` | `/api/servers/{id}/members` | 获取某服务器的成员 |
| `PATCH` | `/api/servers/{id}/members/{mid}` | 更新某成员的 quirks/备注 |
| `DELETE` | `/api/servers/{id}` | 删除某服务器及其数据 |
| `GET` | `/health` | 健康检查接口 |
## 📁 项目结构
```
server-lens/
├── backend/
│ ├── main.py # FastAPI app + routes
│ ├── gateway.py # Discord Gateway session manager
│ ├── scraper.py # Member scraping logic + REST helpers
│ └── models.py # Pydantic request models
├── frontend/
│ ├── index.html # Page structure
│ ├── style.css # All styles (dark theme)
│ └── app.js # Application logic
├── assets/
│ └── banner.png # Project banner
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── CONTRIBUTING.md
└── LICENSE
```
## 🛡️ 安全与隐私
- **100% 本地化** — 你的 Discord token 仅存储在浏览器的 `sessionStorage` 中,并直接发送到 Discord 的 API。它绝不会经过任何第三方服务器。
- **安全请求头** — 默认启用 CSP、X-Frame-Options 和 X-Content-Type-Options。
- **原子写入** — 数据以原子方式保存,防止崩溃导致的数据损坏。
- **开源** — 你可以自行审计每一行代码。
## 🗺️ 路线图
- [ ] SQLite 存储以优化大型服务器的性能
- [ ] 虚拟滚动以支持 10k+ 成员的服务器
- [ ] Discord REST API 速率限制处理
- [ ] 批量标记 / 多选成员
- [ ] 深色/浅色主题切换
- [ ] 浏览器扩展以实现一键抓取
## 📄 许可证
[MIT](LICENSE) — 随意使用、复刻(fork)、构建。
如果 Server Lens 为你节省了时间,请考虑给它一个 ⭐
使用 🖤 和 FastAPI + 原生 JS 构建
标签:AV绕过, Discord工具, Docker, ESC4, FastAPI, Gateway API, JSON导出, OSINT, Python, T1119, T1213.003, T1593.002, Web界面, 代码示例, 安全防御评估, 开源, 成员抓取, 数据分析, 数据可视化, 数据导出, 无后门, 用户爬虫, 用户画像, 用户追踪, 社群管理, 离线用户爬取, 自动化抓取, 自托管, 请求拦截, 逆向工具