如何给Aliens Eye添加自定义平台?sites.d即插即用插件完整教程
【免费下载链接】Aliens_eyeHunt down 840+ social media accounts using AI项目地址: https://gitcode.com/gh_mirrors/al/Aliens_eye
Aliens Eye 是一款 AI 驱动的 OSINT 用户名扫描工具,可同时在 840+ 个社交媒体平台上查找同名账号。内置平台清单来自 sites.json,但如果你想扫描的工具没有收录某个平台,无需修改任何源码——只要往sites.d/目录丢一个 JSON 文件,平台就会即插即用。本篇教程带你从零完成第一次自定义平台添加。
一、先搞懂:平台是怎么"定义"的?
Aliens Eye 里每个平台本质上只有一条数据:平台名 → 主页 URL 模板。例如内置清单 sites.json 中的一条:
"telegram": "https://t.me/{}"{}是占位符,扫描时会被替换成用户名。整个查找过程就是把用户名填进模板、批量访问 800 多个平台,再交给 30 维特征向量 + 机器学习混合检测器判断账号是否存在(详见 WORKING.md)。
所以"添加平台"这件事,难度只在于找到目标平台的用户主页 URL 规律。
二、sites.d 插件文件格式(3 步上手)
第 1 步:找到目标平台的 URL 规律
在浏览器里打开一个你确认存在的账号主页,观察地址栏。常见的形态有:
| 平台 URL 形态 | 示例 | 模板写法 |
|---|---|---|
/用户名 | example.com/john | https://example.com/{} |
@用户名 | example.com/@john | https://example.com/@{} |
/u/用户名 | example.com/u/john | https://example.com/u/{} |
/profile/用户名 | example.com/profile/john | https://example.com/profile/{} |
| 子域名形式 | john.example.com | https://{0}.example.com/ |
第 2 步:写一个 JSON 文件
在项目根目录下新建sites.d/文件夹(没有就建一个),放入文件,比如my_platform.json:
{ "my_platform": "https://myplatform.com/user/{}", "another_site": "https://another.site/@{}" }格式要求很简单(scanner.py 中的load_site_plugins实现):
- 顶层必须是一个JSON 对象,键是平台名(自定义,扫描结果里会显示这个名字),值是带
{}占位符的 URL 模板; - 一个文件里可以放多个平台,平台再多也可以拆成多个文件;
- 文件名必须以
.json结尾,其他扩展名会被忽略; - 文件内容无效(如 JSON 语法错误)时会被静默跳过,不会导致扫描崩溃——但你也得自己检查格式。
第 3 步:验证生效
指定刚写的目录再跑一次扫描:
aliens_eye myusername --site my_platform启动日志里出现Merged 1 plugin site(s) from sites.d directories就说明插件合并成功了。用--site my_platform过滤能最快看到效果,不用等 840 个平台全部扫完。
三、插件放在哪?三种位置任选
load_site_plugins默认按以下顺序合并(scanner.py):
./sites.d/—— 当前工作目录下的sites.d,临时试验最方便;- 用户配置目录的
sites.d/—— 全局生效。Linux 下一般是~/.config/aliens_eye/sites.d/(由 platformdirs 按系统自动确定),一次配置、处处可用; 3生效; --sites-dir参数—— 命令行临时追加一个额外目录,例如:
aliens_eye myusername --sites-dir /path/to/extra_sites三个位置的文件全部合并,适合"内置 840 个 + 我的个人插件 + 团队协作目录"这种分层管理。
四、重名覆盖规则:谁说了算?
平台名冲突时,合并顺序决定了最终结果,优先级从低到高是:
内置 sites.json → ./sites.d/ → 用户配置目录 → --sites-dir也就是说:后加载的覆盖先加载的。你想给某个已收录平台换一个更准的 URL 模板(比如它改版了),只需在sites.d里用同一个平台名写新模板即可覆盖内置定义,完全不需要动源码。
五、常见问题排查清单
Q1:扫描时找不到我加的平台?
- 检查文件后缀是否为
.json(scanner.py 只 glob*.json); - 用
python3 -m json.tool 文件名验证 JSON 语法是否合法; - 确认顶层是对象
{}而不是数组[]。
Q2:用户名带特殊字符怎么办?无需担心。模板填充走 format_site_url,用户名会先做百分号编码再填入,@、空格、中文等字符都不会弄坏 URL;如果模板本身format失败,还有replace("{}", ...)兜底。
Q3:结果总显示 Not Found,但账号明明存在?这是检测器的事,不是插件的事。建议用aliens_eye selfcheck看该平台精确率,或先用--no-ml对比纯启发式结果。平台 JS 渲染重(主页是空壳、内容靠前端加载)的话,可装aliens-eye[browser]启用 Playwright 兜底。
Q4:插件能用于 API/库调用吗?能。api.load_sites() 同样走插件合并逻辑,Python 里构建自己的工具链时无需任何额外配置。
六、写在最后
| 场景 | 推荐位置 |
|---|---|
| 临时试一个平台 | ./sites.d/ |
| 个人常用平台 | 用户配置目录sites.d/ |
| 团队共享平台包 | 单独目录 +--sites-dir |
整个机制只有"一个 JSON 对象 + 一个占位符"这么简洁,配合 config.example.json 里的其他配置项,你完全可以把 Aliens Eye 改造成贴合自己调查习惯的定制版扫描器。添加完自己的第一批平台后,不妨再用aliens_eye selfcheck验证一下新平台的检测准确度——这才是即插即用插件的完整闭环。
【免费下载链接】Aliens_eyeHunt down 840+ social media accounts using AI项目地址: https://gitcode.com/gh_mirrors/al/Aliens_eye
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考