MuTe43/Discord-member-scraper

GitHub: MuTe43/Discord-member-scraper

自托管 Discord 服务器成员采集与分析工具,支持全量枚举(含离线用户)、标签备注及数据导出。

Stars: 0 | Forks: 0

Server Lens — Discord Member Scraper & Tracker

自托管 Discord 成员爬虫,支持实时 Gateway API 访问。

抓取所有服务器成员(即使离线)· 标签与注释 · 导出 CSV/JSON · 精美深色 UI

Get Started Stars Issues

Python 3.11+ FastAPI Docker Self-Hosted MIT License CI

## 🖼️ 截图

Server Lens — member list with roles, quirk tags, and notes

## ❓ 为什么选择 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界面, 代码示例, 安全防御评估, 开源, 成员抓取, 数据分析, 数据可视化, 数据导出, 无后门, 用户爬虫, 用户画像, 用户追踪, 社群管理, 离线用户爬取, 自动化抓取, 自托管, 请求拦截, 逆向工具