一条命令扫完上千个社交平台:跨平台用户画像关联分析上手指南
【免费下载链接】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 是一个开源 OSINT 工具,输入一个用户名,它就去 1000 个社交平台里挨个查这个人有没有注册,把找到的账号连同网页元数据一起汇总成关联图谱。适合安全研究员、威胁情报分析师,以及任何需要把散落各处的账号线索串起来的人。
两个真实场景
场景一:多账号线索调查。有人在多个平台用 johndoe、john_doe、johndoe99 这类变体名活跃,人工逐个平台搜索不现实。把几个变体用逗号一起丢给 Social Analyzer,它会按平台批量探测,最后只把命中和疑似命中的账号列出来,你拿到手是一份"哪个平台、什么置信度、证据是什么"的清单,而不是几百个 404。
场景二:竞品或关键人的社交足迹盘点。想知道某个名字在 YouTube、TikTok、Tumblr 之外的长尾站点还有没有存在感?工具内置按流量排名(--top)、按国家(--countries)、按类型(--type)的筛选,可以只扫头部 50 个站,也可以只扫某个国家下的站点,把探测范围压到自己关心的圈子里。
能力拆解:它到底替你做了什么
用 URL 模板库做快速扫描
它做了什么:对每个目标网站发起一次 HTTP 请求,把用户名填进预设的 URL 模板里访问。怎么做到:全部站点规则集中在 data/sites.json,每条记录长这样——
{ "url": "https://24.wikia.com/wiki/User:{username}", "detections": [{ "name": "mediawiki", "type": "shared" }], "type": "Games > Games", "country": "United States", "global_rank": 9162 }文件里目前有 999 个站点条目,每个都带分类、国家、全球流量排名。你拿到什么结果:一轮扫描后,每个站点有明确的状态——确认命中、疑似命中或未发现,附带该站点的标题、正文文本和页面语言。
多层检测引擎给每个账号打分
光访问 URL 还不够,很多平台对不存在的用户也返回 200。modules/engine.js 因此对同一页面做多层验证:normal 层直接匹配返回源码里的特征字符串;advanced 层针对纯文本内容;ocr 层用 Tesseract 对截图做文字识别,专治把关键文字渲染在图片里的站点。命中条数和总条数算出一个 rate 值,100% 标为 good,50% 到 99% 标为 maybe,低于 50% 标为 bad。这样你拿到的不是一句"找到了",而是带置信度的分级结果,--filter good,bad还能直接按等级过滤输出。
元数据提取与关联图谱
找到账号只是第一步。加--metadata后,modules/extraction.js 会用 Cheerio 解析页面,抽 meta 标签、Open Graph 属性、邮箱、URL 等模式化信息,再跨账号做交叉比对。最终在 Web 界面里,这些元数据被渲染成一张力导向图谱:同一个邮箱出现在几个账号上、几个账号共享同一组联系方式,一眼就能看出哪些账号大概率属于同一个人。
字符串与姓名分析
用户名本身也是情报。工具内置了名称的排列组合生成(比如把 jane_doe、jane-doe、jane.doe 一次试完)、按字母切分和按大小写切分,还能基于内置姓名数据库推断名字来源、估算姓名相似度。对"这个人可能还用了哪些变体名"这个问题,它给出的是候选列表,而不是让你自己想。
最小可跑步骤
装好依赖后,最简的一条命令:
nodejs app.js --username "johndoe"加上参数,让它更有用——只扫流量前 50 的站点、提取元数据、按 JSON 输出并落日志:
nodejs app.js --username "johndoe,john_doe" --metadata --top 50 --output json --logs也可以换慢速模式(需要装好 Chrome/Firefox 驱动,会真实渲染页面并截图做 OCR 检测):
nodejs app.js --username "johndoe" --mode slow --screenshots常用参数还有:--websites指定具体站点、--countries us br按国家筛、--type adult按类型筛、--filter good,maybe,bad过滤结果等级、--profiles detected,failed过滤探测状态。结果可以只留检测到的(--method find),也可以全量返回(--method get)。
进阶与定制
想接入一个新平台,不用写代码:在站点规则库里加一条记录,写好 URL 模板({username}是占位符)、指定它复用的共享检测规则(如 mediawiki、mastodon 这类通用规则集)、补上分类和国家即可,扫描和打分流程会自动接管。要更精细的控制,可以调整每个检测项的 return 期望值(true/false),让"页面里不出现某句话"也算作一条证据——不少平台的 404 页就是这么识别的。Python 侧同样可用pip3 install social-analyzer后以对象方式调用,方便嵌进自己的流水线。
适用边界
它适合本地跑的专项调查:多账号关联、账号变体排查、足迹盘点,输出带置信度分级,天然适合当人工复核的前置过滤层。它不适合高并发、7×24 的监控服务——作者明确定位它是本地工具,没有访问控制。和只查主流大平台的同类 OSINT 工具比,它的差异点在于近千个长尾站点的覆盖和多层检测打分机制;和纯 Web 版工具比,它多了字符串分析和元数据图谱这两块。对探测速度的要求如果高于对覆盖率的要求,建议直接用 fast 模式加--top限流。
【免费下载链接】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),仅供参考