shredzwho/IG-Detective
GitHub: shredzwho/IG-Detective
一款基于 Python 的 Instagram 开源情报调查工具,提供账户分析、地理轨迹映射、社交网络关系挖掘和自动化报告生成等深度 OSINT 功能。
Stars: 136 | Forks: 22
# IG-Detective 🕵️♂️📸
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/Textualize/rich)
**IG-Detective** 是一款高性能、基于 Python 的 Instagram 开源情报 (OSINT) 工具。它提供了一个高级的交互式 shell,能够对 Instagram 账户进行深度分析、提取位置历史记录、映射互动关系并生成自动化的调查报告。
## ⚡ 功能
### 🛡️ 规避与隐蔽(高级)
- **TLS 指纹欺骗**:结合 `playwright-stealth` 使用无头 Playwright `chromium` 浏览器来模拟真实环境,彻底绕过 Cloudflare 和 CDN 的速率限制。
- **深度规避回退**:如果已认证的会话遭到影子封禁(例如 HTTP 401/429/400 拦截),会自动级联到未认证的无头浏览器抓取,通过省略 cookies 并伪造 headers 来模拟纯净的全新连接。
- **泊松抖动**:请求间采用类似人类的随机延迟,以模仿自然用户的行为。
### ⚡ 性能与优化
- **无头内存调优**:精简的 Playwright 浏览器配置,通过路由拦截显式屏蔽繁重的视觉资产(图像、字体、样式表),从而实现极速查询。
- **异步数据导出**:在 `data` 归档命令中利用 ThreadPool 并行下载,大幅提升完整复制账户媒体的速度。
### 🔍 核心侦察
- **用户信息**:全面的资料详情(ID、简介、粉丝、商业状态)。
- **粉丝/关注**:列出并导出目标的社交网络。
- **帖子分析**:对近期内容、点赞和评论进行详细梳理。
### 📍 高级 OSINT
- **交互式地理空间映射**:从帖子中提取 GPS 坐标,并生成带有可读地址和可点击图钉的 Folium `interactive_map.html`。
- **社交网络分析 (`sna`)**:映射互动关系以识别“核心圈子”——与目标关联度最高的前 10 名用户。
- **时间活动分析 (`temporal`)**:使用 DBSCAN 聚类分析识别目标的“睡眠间隙”并预测其主要时区。
- **Story 提取 (`stories`)**:获取活跃的 Story URL。
### 🔬 研究驱动的取证模块(前沿技术)
- **账户恢复枚举 (`recovery`)**:触发密码重置流程,揭示掩码联系提示,用于行政邮箱验证。
- **共同访问分析 (`intersect`)**:通过交叉比对两个目标之间的 GPS/时间交集,确定物理会面地点。
- **文体测量学 (`stylometry`)**:基于二元语法和 Emoji 分布生成数字“语言签名”,从而关联多个账户。
- **互动审计 (`audit`)**:通过时间抖动方差进行统计检测,识别虚假的 Bot 活动。
### 📦 调查管理
- **一键导出 (`data`)**:自动下载目标的粉丝列表、关注列表和时间线媒体(包含元数据 JSON),并将其打包为单一的 ZIP 归档文件。
- **自动化报告**:每条命令都会自动将结果保存为 JSON 和 TXT 报告,存放于 `data//` 中。
- **自主批处理模式**:从文本文件中按顺序处理多个目标。
- **智能缓存**:通过基于 TTL 的缓存实现极速的重复查询。
## 🚀 安装说明
1. **克隆仓库**
git clone https://github.com/shredzwho/IG-Detective.git
cd IG-Detective
2. **设置虚拟环境**
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
3. **安装依赖**
pip install -r requirements.txt
### 🐳 使用 Docker 运行(推荐)
你可以完全在 Docker 中运行 IG-Detective 以避免依赖问题。该容器需要交互式 TTY (`-it`) 以及用于保存取证报告的卷挂载。
1. **使用 Docker Compose(最简单)**
docker-compose run --rm detective
2. **使用标准 Docker**
docker build -t ig-detective .
docker run -it -v $(pwd)/data:/app/data ig-detective
## 🛠 用法
1. **启动 Shell**
python3 main.py
# 或使用提供的 wrapper:
./run.sh
2. **核心命令**
进入 shell 后,你必须先设置一个目标,然后才能运行分析模块:
| 命令 | 描述 |
| :--- | :--- |
| `target ` | 设置调查目标(必须的第一步) |
| `info` | 查看基本资料 OSINT(简介、外部链接、元数据) |
| `posts` | 获取目标近期的时间线活动与统计数据 |
| `addrs` | 从内嵌的 GPS 中提取地理位置目标 |
| `data` | 将目标足迹(媒体、粉丝)导出为 ZIP 文件 |
| `surveillance`| 持续监控并实时追踪目标指标/简介变化 |
| `sna` | 进行社交网络分析以映射“核心圈子” |
| `temporal`| 通过 DBSCAN 计算时区和睡眠行为 |
| `stylometry` | 对配文进行 NLP 语言特征分析(Emoji 与 N-grams) |
| `recovery` | 触发密码重置流程以揭示掩码联系人 |
| `intersect` | 交叉比对两个目标之间的 GPS/时间交集 |
| `audit` | 通过统计检测识别虚假 Bot 活动 |
| `help` | 显示交互式帮助菜单 |
| `exit` | 干净地退出 CLI |
## 📑 详细文档
如需深入了解系统架构、取证方法论和规避逻辑,请参阅:
👉 **[DOCUMENTATION.md](DOCUMENTATION.md)**
## 📂 项目结构
- `main.py`:shell 的主入口点。
- `run.sh`:启动包装脚本。
- `src/api/`:包含 `Playwright` 隐身客户端和认证管理器的网络层。
- `src/core/`:包含数据模型和配置的基础层。
- `src/modules/`:包含抓取工具和深度分析工具的业务逻辑层。
- `src/cli/`:包含交互式提示和 Rich 格式化程序的展示层。
- `data/`:自动化的调查报告(已在 git 中忽略)。
## 🤝 参与贡献
欢迎自由 fork 本项目并提交 pull request。对于重大更改,请先开启一个 issue 以讨论你希望进行的更改。
## 📜 许可证
[MIT]
标签:ESC4, OSINT, Playwright, Python, 实时处理, 无后门, 特征检测, 自动化爬虫, 请求拦截, 逆向工具