yes999zc/clawithme

GitHub: yes999zc/clawithme

一款专注于用户名跨平台追踪的 OSINT 工具,覆盖 3000+ 站点并支持多信号身份关联与泄露库查询,尤其擅长中国互联网生态下的数字情报收集。

Stars: 2 | Forks: 0

# clawithme
[![Python](https://img.shields.io/badge/Python-3.11%2B-blue?style=flat-square)](https://www.python.org/) [![License](https://img.shields.io/badge/license-MIT-green?style=flat-square)](LICENSE) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b7bb84105c053349.svg)](https://github.com/yes999zc/clawithme/actions/workflows/ci.yml) [![PyPI](https://img.shields.io/pypi/v/clawithme?style=flat-square)](https://pypi.org/project/clawithme/) [![tests](https://img.shields.io/badge/tests-243%20passed-brightgreen?style=flat-square)](https://github.com/yes999zc/clawithme/actions) **用户名到身份全景 —— 面向中国互联网及更广阔的范围。**
输入一个用户名。发现他们在 3000 多个平台上的踪迹 —— 从社交网络到开发者社区,从中国本地论坛到全球网站。通过电子邮件、电话号码、头像哈希和泄露的凭证关联身份。导出包含 HTML、PDF、JSON 或 **Markdown** 的独立报告。所有功能均由带有 LLM 身份验证的异步 pipeline 提供支持。 ## 快速开始 ### Docker ``` docker pull ghcr.io/yes999zc/clawithme docker run -p 8000:8000 ghcr.io/yes999zc/clawithme ``` 然后打开 http://localhost:8000 使用 Web UI。如需使用 CLI: ``` docker run ghcr.io/yes999zc/clawithme clawithme search --acknowledge-ethical-use ``` ### PyPI ``` pip install clawithme[web] clawithme-web # → http://localhost:8000 clawithme search --acknowledge-ethical-use ``` ### 从源码安装 ``` git clone https://github.com/yes999zc/clawithme.git cd clawithme pip install -e ".[dev]" clawithme search --acknowledge-ethical-use ``` ### 生成报告 ``` clawithme search --report report.html --acknowledge-ethical-use clawithme search --report report.pdf --format pdf --acknowledge-ethical-use ``` ## Pipeline ``` username | +-- Phase 1: Site probing (44 curated + 2487 migrated, 9 CMS engines) | | | +-- HTTP status code / body message / header matching | +-- Scrapling anti-bot fingerprinting | +-- SearXNG fallback for un-hit sites | +-- Phase 2: Profile extraction (49 extractors: GitHub, Zhihu, Reddit, LinkedIn, ...) | +-- CSS/XPath selectors, Playwright for JS-rendered pages | +-- Avatar perceptual hash (pHash) | +-- Phase 3: Leak database query (Cavalier + HIBP, parallel manager) | +-- Phase 4: Multi-signal correlation | +-- email (1.0) · phone (0.95) · avatar pHash (0.8) · username (0.7) | +-- Union-Find transitive closure + anti-merge gate | +-- Phase 5: Geist HTML / PDF report | +-- Platform distribution charts · Breach timeline | +-- Identity clusters with confidence badges · PII redaction | +-- Phase 6: LLM Verifier (DeepSeek/Kimi/百炼, provider-agnostic) | +-- SQLite result caching | +-- Phase 7: Async pipeline (asyncio.gather, 10 concurrent, 180s→14s) | +-- Phase 8: Web UI (FastAPI + SSE streaming) + PDF export (WeasyPrint) ``` ## 功能特性 - **9 种检测引擎** — 状态码、正文消息、Headers,以及 XenForo/Discourse/phpBB/vBulletin/WordPress/Discuz! CMS - **3000+ 个站点** — 44 个手工筛选 + 2487 个从 maigret_china 迁移,均由引擎分配 - **49 个资料提取器** — GitHub、知乎、Reddit、LinkedIn、HackerNews、豆瓣、掘金、NGA 等 - **异步 pipeline** — 10 并发 asyncio.gather,冷搜索从 180 秒降至 14 秒 - **泄露数据库** — Cavalier infostealer 记录 + HIBP 违规数据库,并行查询并支持优雅降级 - **LLM 验证器** — DeepSeek/Kimi/百炼多提供商,自动发现,结构化置信度评分 - **身份关联** — 基于并查集的跨电子邮件、电话号码、头像哈希和用户名相似度聚类,带有防误合并门控 - **Geist 报告** — 通过 WeasyPrint 生成独立的 HTML + PDF,灰度设计,纯 CSS 图表,个人身份信息(PII)自动脱敏 - **Web UI** — FastAPI + SSE 流式搜索,Geist 前端,零配置部署 - **插件架构** — 通过 `entry_points` 发现提取器;CN 和国际提取器统一在单一仓库中([clawithme-cn](https://github.com/yes999zc/clawithme-cn) 已归档) - **Schema 优先** — 对每个站点定义进行 JSON Schema 验证,由 CI 强制执行 - **CI/CD** — PR schema 验证 + 每日站点验证 + 自动发布至 PyPI ## 截图 ## 与 maigret 对比 | | maigret | clawithme | |---|---------|-----------| | 站点存储 | 单一的 `data.json` | 每个站点一个 JSON + JSON Schema | | 检测机制 | 硬编码约 1200 行 | `engines.json` 中的 9 个可插拔引擎 | | HTTP 层 | aiohttp + requests | Scrapling(curl_cffi 指纹伪装) | | 深度提取 | socid_extractor 插件 | 内置 GitHub + 知乎提取器 | | 泄露数据库 | 无 | Cavalier + HIBP,并行管理器 | | 关联方式 | 无 | 并查集:电子邮件/电话/头像/用户名 | | 质量门控 | 无 | CI:每日验证 + Schema + Ruff | | 中国站点 | 有限 | 16 个 CN 平台 + Discuz! 引擎 | ## 安装 ### PyPI ``` pip install clawithme[web] ``` ### Docker ``` docker pull ghcr.io/yes999zc/clawithme docker run -p 8000:8000 ghcr.io/yes999zc/clawithme ``` 该镜像包含所有依赖项(WeasyPrint、Noto CJK 字体),并在端口 8000 上运行 Web UI。覆盖 entrypoint 即可用于 CLI: ``` docker run ghcr.io/yes999zc/clawithme clawithme search --acknowledge-ethical-use ``` ### 从源码安装 ``` git clone https://github.com/yes999zc/clawithme.git cd clawithme pip install -e ".[dev]" ``` 需要 Python 3.11+。 ## 使用方法 ``` # 基础搜索(精选 44 个站点) clawithme search yes999zc --acknowledge-ethical-use # 完整搜索(所有 3000+ 个站点) clawithme search yes999zc --include-migrated --acknowledge-ethical-use # 生成 HTML 报告 clawithme search yes999zc --report report.html --acknowledge-ethical-use # 生成 JSON / PDF / Markdown 报告 clawithme search yes999zc --report report.json --format json --acknowledge-ethical-use clawithme search yes999zc --report report.pdf --format pdf --acknowledge-ethical-use clawithme search yes999zc --report report.md --format md --acknowledge-ethical-use # 验证站点数据库 python scripts/validate.py python scripts/verify_site.py --all python scripts/stats.py # 运行测试 pytest tests/ -v ``` ## 道德使用 **本工具查询公开资料和违规数据库。请仅在你拥有或已获得明确授权调查的账户上使用。** 未经授权的使用可能会违反平台服务条款、隐私法(GDPR、PIPL)及道德规范。 CLI 强制执行 `--acknowledge-ethical-use` 门控。 ## 创建发布版本 1. 确保所有更改已提交并推送到 `main`。 2. 标记发布版本并推送: git tag v0.2.0 # 先在 pyproject.toml 中更新版本号 git push --tags 3. [Release workflow](.github/workflows/release.yml) 会自动: - 构建 wheel - 运行冒烟测试(import 检查) - 发布到 PyPI(需要在仓库中配置 `PYPI_TOKEN` secret) - 创建带有自动生成发行说明的 GitHub Release ## 许可证 MIT
标签:BeEF, CLI, DNS解析, Docker容器化, ESC4, ESC8, GitHub, HTML报告, HTTP状态码分析, Markdown报告, OSINT, PDF报告, Python, WebUI, WiFi技术, 个人信息保护, 人物画像, 多平台扫描, 大模型身份验证, 头像哈希比对, 实时处理, 开发者社区检索, 开源项目, 异步数据流水线, 手机号码关联, 数据泄露, 数据溯源, 无后门, 泄露凭证检测, 爬虫, 特征检测, 用户名枚举, 电子邮件关联, 社交网络发现, 社会工程学, 社工库, 网站探测, 网络安全, 自动化报告, 计算机取证, 请求拦截, 跨平台身份关联, 身份核查, 逆向工具, 隐私保护, 隐私检测