maigret
学之广在于不倦,不倦在于固志。——晋葛洪
https://github.com/soxoj/maigret
Maigret:一位拿着放大镜的“用户名侦探”,在 3000+ 站点里替你拼出一份人物档案
如果互联网是一座巨大的城市,那么每个“用户名”就是你在街角留下的一张名片:有人把它贴在社交网络门口,有人把它塞进论坛签名里,有人把它刻在代码仓库的角落。问题是——名片散落得太广,想把它们捡回来并排铺开,靠人力几乎是体力活。
这时候,Maigret 走了进来:
它像一位穿风衣、戴礼帽的侦探(🕵️♂️),只要你给它一个用户名,它就会去大量网站逐个敲门核对,顺手把网页里能拿到的信息都收进“档案袋”里——而且不需要任何 API Key。
项目一句话描述也很直白:
“Collect a dossier on a person by username from 3000+ sites”
——从 3000+ 站点,用一个用户名收集一份“人物卷宗”。
1 分钟认识 Maigret:它先自我介绍,再立刻办案
Maigret 很懂“第一印象”。它给你的第一句话就是:确保你有 Python 3.10+,然后用最短路径开始搜索。
1 | pip install maigret |
你甚至可以不安装它:
- 不想落地?它说可以试试 Telegram bot:https://t.me/maigret_search_bot
- 或者直接在浏览器里用 Cloud Shell(下面会提到)
如果你偏爱点点点的体验,它也准备了“另一套衣服”:Web UI(后面也会写怎么启动)。
Maigret 在做什么?它像“只凭名字也能找到线索”的老练侦探
它的核心设定非常干脆:
只用用户名,去很多网站检查这个账号是否存在,并从网页与可用接口里收集尽可能多的信息。
你给它一个“称呼”,它就去问遍全城:
“你见过这个人吗?”
“他在你家门牌号是多少?”
“他的主页上还写了谁的名字?”
“有没有指向其他账号的链接?”
然后把这些“口供”和“目击记录”拼起来,形成一份可读、可存档、可导出的结果集。
主要能力:它不仅会“找”,还会“顺藤摸瓜”和“写报告”
Maigret 的性格不是“查到就走”,而是典型的“职业病”:线索越多越兴奋,越会把案子办成体系化的报告。
1)站点覆盖:3000+ 站点,默认先查最“热门”的 500 个
- 支持 3,000+ 网站(完整列表见
sites.md) - 默认运行会检查流量排名最高的 500 个站点
- 想扫全量?它会提醒你可以用
-a - 或者用
--tags选择你关心的类别/国家标签(下面有例子)
2)能“嵌进你的 Python 项目”当组件
它不是只会在命令行里表演。Maigret 也愿意“当库用”:你可以在 Python 里 import maigret,以程序化方式跑搜索,把结果接进你自己的分析管线里。
(CLI 本质上只是一个薄包装,底层是 async 函数。)
3)提取信息:不止判断“存在/不存在”,还会把页面里的信息抓出来
它会从主页与站点 API(若可用)中提取可获得的信息,包括链接到其他账号的线索。
这不是“点名签到”,更像“翻相册、看签名、抄联系方式”。
4)递归搜索:线索能引出新的用户名,它就继续追
当它从页面里发现了其他用户名或 ID,它会做递归扩展搜索:
像侦探在笔记本上画线:A 认识 B,B 又指向 C……线索网就这样长出来。
5)标签过滤:按类别、国家等筛选
你可以只让它查某类站点,比如 photo、dating 或特定国家标签(比如 us)。
它会像一个有经验的办案人:先去最可能出现的地方问。
6)对抗阻断:它会识别并尝试绕过 block / censorship / CAPTCHA(部分)
它知道城市里有保安、有门禁、有“你不是人类”的盘问。
Maigret 会尽量识别并做部分绕过(当然它不会替你解决一切环境问题)。
7)站点数据库自动更新(每 24 小时一次)
每次运行它都会去 GitHub 拉取自动更新的站点数据库(24 小时内只更新一次),如果拿不到就退回内置数据。
它像每天早晨都要看一眼“最新地图”的侦探:城市变化太快,情报要常新。
8)Tor / I2P:它也愿意走“地下通道”
它支持通过代理、Tor、I2P 去检查 .onion / .i2p 站点,也能帮助绕开部分 WAF 对数据中心 IP 的封锁。
9)报告与界面:CLI 能输出多种格式,Web UI 还能画图、统一下载
- CLI 可以导出 HTML / PDF / XMind8 / JSON / CSV / TXT / Graph(D3 交互图)
- Web UI 则像“案卷阅览室”:图形化结果、并能在同一页面下载各种报告
10)AI 分析模式(可选):把“原始发现”变成“中立小结”
它提供 --ai:把搜索结果整理成内部 Markdown 报告后,发送给 OpenAI 兼容接口做一个简短、偏中立的调查摘要(流式输出到终端)。
(需要 OPENAI_API_KEY,并可在 settings.json 配置 key 和 base_url。)
安装方式:Maigret 会把“入口”铺得很宽
它不强迫你走同一条路——你可以本地装、源码装、Docker 跑、Windows 下直接 EXE,甚至在云端 shell 或 notebook 里“即开即用”。
方式 A:本地 pip(最常见)
1 | # install from pypi |
方式 B:从源码安装(喜欢自己掌控一切的人会走这条)
1 | # or clone and install manually |
方式 C:Windows 直接 EXE
- 在 Releases 下载 standalone EXE
- 还有视频指南:https://youtu.be/qIgwTZOmMmM
方式 D:Cloud Shells / Notebook(浏览器里办案)
它允许你把“侦探事务所”直接开在云端:
- Google Cloud Shell(带教程)
- Replit
- Colab
- Binder
(README 中把这些入口都列出来了,你可以按习惯选择。)
方式 E:Docker(把 Maigret 装进箱子,搬到哪里都能跑)
它发布了两种镜像人格:
soxoj/maigret:latest—— CLI 模式(默认)soxoj/maigret:web—— 自动启动 Web UI
1 | # official image (CLI) |
命令行使用:让侦探“怎么查、查多深、输出成什么样”都可控
Maigret 在命令行里很像一个经验丰富的助手:你只要一句话,它就能按你要求把案卷写成不同格式。
1)生成报告:HTML / PDF / XMind8
1 | # make HTML, PDF, and Xmind8 reports |
2)机器可读导出:JSON / NDJSON / CSV / TXT
1 | # machine-readable exports |
3)图谱输出:交互式 D3 graph(HTML)
1 | maigret user --graph # interactive D3 graph (HTML) |
4)按标签筛选:只查你关心的“地盘”
1 | # search on sites marked with tags photo & dating |
5)多用户名批量:一次审三个人
1 | # search for three usernames on all available sites |
6)AI 调查小结:让它把“线索堆”整理成“短摘要”
1 | # AI-assisted investigation summary (needs OPENAI_API_KEY) |
它也给了更完整的帮助入口:
运行 maigret --help 查看所有选项;以及文档中的 CLI options / 更多示例。
Web 界面:它把“案子”画成一张图给你看
Maigret 的 Web UI 不只是“换个皮肤”,更像给侦探配了一面玻璃白板:
- 结果以图谱方式呈现
- 同一个页面可以下载各种格式的报告
启动方式很简单:
1 | maigret --web 5000 |
然后打开:http://127.0.0.1:5000
输入用户名,查看结果。
如果你用 Docker,它甚至会“自己把门打开”(上面的 soxoj/maigret:web)。
代理 / Tor / I2P:当侦探需要换一条路走
有些门口保安对机房 IP 特别敏感,有些站点本身就在 .onion / .i2p 世界里。Maigret 不会替你启动 Tor/I2P 服务,但它愿意把请求“走过去”。
1 | # any HTTP/SOCKS proxy |
一些特别有用的 CLI 开关:侦探的“随身工具包”
--parse URL
解析某个个人主页 URL,提取 IDs/usernames,再用它们启动递归搜索。--permute
用两个或更多输入生成可能的用户名变体(例如john doe→johndoe,j.doe, …),并全部搜索。--self-check [--auto-disable]
维护者用来验证usernameClaimed/usernameUnclaimed对照在真实站点是否仍然有效(数据库审计)。--ai/--ai-model
AI 分析模式,以及指定模型。
AI 分析:它会把结果打包成 Markdown,再交给 OpenAI 兼容接口“写一段中立摘要”
启用方式:
1 | export OPENAI_API_KEY=sk-... |
Key 也可以写进 settings.json 的 openai_api_key。
接口地址默认 https://api.openai.com/v1,也可以用 openai_api_base_url 指向任意 OpenAI-compatible endpoint。
贡献方式:它希望你“精修手术刀”,而不是“粗暴重写”
如果你要加站点或修站点:
- 在
data.json里“外科手术式”修改(不要json.load/json.dump) - 然后运行
./utils/update_site_data.py重新生成sites.md和数据库元信息 - 最后提交 PR
商业使用:它很开诚布公
开源版:
- MIT License
- 可自由商业使用(不受限制)
但它也直说现实:站点检查会随着时间失效,需要维护。
如果你做严肃商用并希望有:
- 每日更新的私有站点数据库(5,000+ 站点,独立于公开开源库)
- 或 用户名检查 API
可以联系:maigret@soxoj.com
About / Disclaimer:侦探也会强调“��法合规”
README 里的立场很明确:
仅用于教育与合法用途。你需要自行遵守你所在地区的相关法律法规(GDPR、CCPA 等),作者不对滥用负责。
结语:给它一个用户名,它就去替你跑遍整座互联网
Maigret 最迷人的地方,是它把 OSINT 里最累的那一段——“重复、分散、琐碎的站点核对与信息收集”——变成了一个可重复、可导出、可自动化的流程。
它像一个认真到有点固执的侦探:
你只递给它一张写着用户名的小纸条,它就能跑去 3000+ 家店门口敲门、查记录、捡线索、画关系网,最后把“档案袋”递回你手上——格式还随你挑。
MIT © Maigret
项目主页:https://github.com/soxoj/
