如何3步跑通 Social Analyzer:1000+社交媒体账号排查实战指南
【免费下载链接】social-analyzerAPI, CLI, and Web App for analyzing and finding a person's profile in 1000 social media \ websites项目地址: https://gitcode.com/GitHub_Trending/so/social-analyzer
你有没有遇到过这种情况:只想确认某个人名在网络上的存在感,结果一个个平台手动敲地址栏,查了半小时还没查完?Social Analyzer 就是为这件事设计的——一个 API、命令行、网页三合一的开源工具,内置 1000 多个社交媒体网站的探测规则,输入一个用户名,它帮你挨个站点去试、去打分、去汇总。读完本文,你能在本地把它的网页版跑起来,并完成一次"输入用户名 → 拿到带置信度的账号清单"的完整排查。
你能用它解决什么
Social Analyzer 的定位很直白:把"某人是不是注册过这些网站"这件体力活自动化。它不关心网站有多少个,只关心怎么快速遍历并判断结果。核心能力就三条:
- 批量探测:基于 data/sites.json 里的 1000+ 网站模板,把用户名填进网址模板并发请求,快速筛出疑似存在的账号
- 置信度打分:每个疑似结果带一个 0–100 的 rate 分数,分 good / maybe / bad 三档,帮你过滤误报,逻辑在 modules/engine.js
- 字符串拆解分析:对用户名本身做拆分、数字转字母、猜年龄段、查姓名来源等 8 类分析,代码在 modules/string-analysis.js 和 modules/name-analysis.js
30分钟内从0到跑通
前置要求:装好 Node.js(13 以上版本即可)和 npm。下面以最推荐的网页版方式为例:
- 拉取代码:
git clone https://gitcode.com/GitHub_Trending/so/social-analyzer,克隆后进入该目录 - 装依赖:在项目根目录执行
npm install,安装完成后你会看到 node_modules 目录生成 - 启动服务:执行
npm start,控制台出现Server started at http://localhost:9005/app.html即成功 - 打开界面:浏览器访问
http://localhost:9005/app.html(public/app.html 就是主界面),能看到左侧"Enter Profile Name"输入框和一排选项按钮
不想装环境?仓库自带 Dockerfile 和 docker-compose.yml,一条docker-compose up也能起服务。
一次完整排查走查
以排查用户名joe为主线,把流程走一遍:
- 输入:在"Enter Profile Name"输入框敲入
joe。支持用英文逗号分隔多个用户名(如joe,joedoe),一次查一批,用于交叉比对 - 选模式:点
Fast Options展开快速选项,勾选FindUserProfilesFast。这是最常用的一档——纯 HTTP 请求探测,速度快;Slow模式会打开浏览器渲染页面再判断,更准但更慢,实现分别在 modules/fast-scan.js 和 modules/slow-scan.js - 执行:点
Analyze开始。底部日志区会滚动输出[Checking] 站名这样的进度,说明哪些站点正在被访问 - 看结果:几分钟后结果区分块出现——
- Detected Profiles:疑似账号卡片,每张带链接、rate 分数和状态标签
- Profiles:所有探测过的站点明细
如果 Fast 模式没查到,别急着下结论,把FindUserProfilesFast换成FindUserProfilesSlow再跑一次,部分网站需要 JavaScript 渲染才能出页面,慢速模式专门处理这种情况。
深挖:图谱视图与置信度打分
力导向图谱:把结果变成关系网
操作:分析时同时勾选ExtractMetadata和NetworkGraph,完成后点击 Graph 选项卡,进入 public/graph.html 渲染的力导向图(Force Graph:节点可以拖拽,节点自动按连接关系聚拢的交互图)。
看到什么:中心节点是你输入的用户名,向外连出每个被确认的账号链接节点;如果页面里能提取到元数据(author、itemprop 等标签),它们会变成第三层节点挂在链接节点上。图谱顶部有搜索框,可以直接定位某个节点。
原理:整个建图逻辑集中在 modules/visualize.js,下面这段代码负责"建网"——先只保留状态为 good 的结果,再把用户名、链接、元数据三层挂成节点和边:
const graph = new QBIxora('Social-Analyzer', false) const temp_filtered = detected.filter(item => item.status === 'good') temp_filtered.forEach(site => { graph.add_node(site.link, site.link, { header: site.link }) graph.add_edge(site.username, site.link, { width: 1 }) // 若页面带 metadata,还会挂出第三层元数据节点 })打分机制:为什么结果分三档
每条探测结果都有 rate 值(0–100)。判定规则在 modules/engine.js:网站模板里预置了若干"探测点"(比如页面是否包含特定文本、HTTP 状态码是否为 200),命中的探测点数和页面相似度共同决定 rate,过线即标记good,没过线的归入maybe或bad。这就是官方说"误报更少"的原因——不是找到页面就算数,而是要多个信号同时成立。
结果怎么落地再利用
分析完成后不用截图手抄,两种方式带走结果:
- 网页端导出:右侧 Save Report 区域点
JSON按钮,浏览器会直接下载以用户名为文件名的.json报告,包含用户名、每个站点的状态、rate、提取到的文本等字段 - 命令行输出:如果你习惯终端,
node app.js --username "johndoe"跑完可加--output json把结构化结果打印到屏幕,配合管道就能喂给其他脚本或存档系统。CLI 还支持--top 100(只查排名前 100 的站点)、--countries us br(按国家筛站点)、--filter good(只保留高置信结果)这些参数
避坑与进阶技巧
- Fast 查不到 ≠ 账号不存在:先切 Slow 模式复测,再试 Special 模式——它针对 Facebook 手机号、Gmail 这类特殊格式做了专门处理,代码在 modules/special-scan.js
- 控制范围提速:全量 1000+ 站点一轮要跑挺久。只关心热门站就用
--top或按国家/类型过滤,网页端也可在设置里取消勾选无关站点 - 并发已调好,别贪快:探测默认 15 个并发并带三轮自动重试(见 modules/fast-scan.js),对同一站点短时间高频请求容易触发限流,重试失败会标为 failed,属正常现象
- 字符串分析别跳过:像
john90这种 ID,勾上FindNumbers和ConvertNumbers能拆出 1990、2000 等可能的年份线索,辅助判断账号注册时间或年龄段 - 合规红线:这个工具设计用途是本地调查(反网络欺凌、反跟踪等 OSINT 场景),官方明确它没有访问控制、只适合本地使用。查询他人信息前,确认你所在司法辖区的隐私法规允许这样做,别把结果公开传播
写在最后
一个用户名,几分钟,一份带置信度分数的跨平台账号清单——这就是 Social Analyzer 给出的答案。下一步可以研究它的 Python 包模式(pip3 install social-analyzer),把探测能力嵌进你自己的调查工作流里。觉得有用就点个收藏,下次排查直接回来照抄步骤。
【免费下载链接】social-analyzerAPI, CLI, and Web App for analyzing and finding a person's profile in 1000 social media \ websites项目地址: https://gitcode.com/GitHub_Trending/so/social-analyzer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考