一、基本盘维度数据Stars59,510Forks11,724创建时间2023年6月9日最近更新2026年7月30日总 Commits794Open Issues185许可证自定义「非商业学习许可」(NON-COMMERCIAL LEARNING LICENSE 1.1)主语言Python (3.11)维护模式单人为主 (NanmiCoder)Star 量在同领域中文自媒体数据采集排第一且仍在活跃维护。二、项目定位一个多平台自媒体数据采集工具覆盖国内 7 个主流社交媒体平台支持关键词搜索、指定帖子详情、评论爬取、创作者主页采集等功能。平台功能矩阵平台关键词搜索指定帖子爬取二级评论创作者主页登录态缓存IP代理池评论词云小红书✅✅✅✅✅✅✅抖音✅✅✅✅✅✅✅快手✅✅✅✅✅✅✅B站✅✅✅✅✅✅✅微博✅✅✅✅✅✅✅贴吧✅✅✅✅✅✅✅知乎✅✅✅✅✅✅✅三、技术架构3.1 整体架构main.py (入口工厂模式) ├── CrawlerFactory → 7个平台爬虫 │ ├── XiaoHongShuCrawler / DouYinCrawler / KuaishouCrawler │ ├── BilibiliCrawler / WeiboCrawler / TieBaCrawler / ZhihuCrawler │ └── 全部继承 AbstractCrawler 基类 ├── base/ — 抽象基类、公共组件 ├── store/ — 多格式数据输出 (CSV/JSON/Excel/SQLite/MySQL/PostgreSQL) ├── proxy/ — IP代理池管理 ├── cache/ — 缓存抽象 (支持 Redis) ├── database/ — ORM 模型支持自动建表 ├── config/ — 配置中心 (base_config.py) ├── api/ — FastAPI 后端服务 ├── webui/ — Vite 前端界面 ├── tools/ — 工具函数、CDP 管理、异步文件写入 └── constant/ — 常量定义3.2 目录结构MediaCrawler/ ├── api/ # FastAPI 后端服务 ├── base/ # 抽象基类 ├── cache/ # 缓存层 (Redis支持) ├── cmd_arg/ # 命令行参数 ├── config/ # 配置文件 ├── constant/ # 常量定义 ├── database/ # 数据库模型 ├── docs/ # VitePress 文档站 ├── libs/ # 第三方库 ├── media_platform/ # 7个平台爬虫实现 │ ├── xhs/ # 小红书 │ ├── douyin/ # 抖音 │ ├── kuaishou/ # 快手 │ ├── bilibili/ # B站 │ ├── weibo/ # 微博 │ ├── tieba/ # 贴吧 │ └── zhihu/ # 知乎 ├── model/ # 数据模型 ├── proxy/ # 代理池 ├── store/ # 数据存储层 ├── test/ / tests/ # 测试 ├── tools/ # 工具函数 ├── webui/ # Web 前端 (Vite) ├── main.py # 入口文件 ├── pyproject.toml # Python 项目配置 └── requirements.txt # 依赖列表3.3 设计模式工厂模式CrawlerFactory通过平台标识xhs/dy/bili等创建对应的爬虫实例模板方法模式AbstractCrawler基类定义start()流程骨架子类实现各平台特有逻辑策略模式存储层支持 CSV/JSON/Excel/SQLite/MySQL/PostgreSQL 可插拔切换代理模式代理池抽象支持多代理提供者四、核心技术原理 — CDP 模式这是 MediaCrawler 架构中最关键的技术创新。4.1 什么是 CDPChrome DevTools Protocol— Chrome 浏览器对外暴露的底层通信协议。你按 F12 打开的开发者工具就是通过 CDP 跟浏览器内核通信。任何程序都可以通过 WebSocket 连接localhost:9222来操控 Chrome 浏览器查看 DOM、执行 JS、监控网络请求、截图等。Playwright 和 Puppeteer 底层走的也是 CDP。4.2 MediaCrawler 的 CDP 做法传统爬虫路径Python脚本 → launch() 启动新Chrome → 无登录态 → 需要扫码登录 → 高风控风险MediaCrawler CDP 路径用户手动打开 Chrome已登录各平台 ↕ WebSocket (localhost:9222) Python脚本 → connect_over_cdp() 连上已有浏览器 → 复用Cookie/登录态 → 低风控风险三步走用户启动 Chrome 并开启远程调试chrome://inspect/#remote-debuggingPlaywright 通过 CDP 连上playwright.chromium.connect_over_cdp(http://localhost:9222)在浏览器 JS 环境中执行签名函数page.evaluate(window._webmsxyw())4.3 为什么这招聪明传统的爬虫有两种路径路径做法痛点逆向加密算法反编译 App、分析混淆 JS、还原签名算法成本极高平台一更新就得重来浏览器自动化Playwright/Selenium 模拟点击没登录态风控检测高容易被封CDP 模式走了第三条路不逆向加密不模拟点击直接在真人浏览器里调用平台自己的签名函数。page.evaluate(window._webmsxyw()) → 返回 { xs: abc..., xt: 123... } ↓ Python 拿着签名直接发 HTTP 请求核心洞察平台的 JS 源代码里一定包含签名算法CDP 让你在浏览器运行环境里直接拿到计算结果——你不需要知道算法怎么算的只需要知道函数名是什么。4.4 CDP 模式的局限性依赖平台暴露签名函数到window对象上。如果平台做严格的闭包隔离不暴露这招就废了。平台改前端 JS 时函数名可能变更需要同步更新。不过改一两行 JS 表达式的成本远低于重新逆向。需要 Chrome 144且需要用户手动开启远程调试。本质上仍是寄生平台理论上可以通过检测 CDP 连接来反制。五、优劣势分析5.1 优势优势点说明架构清晰工厂模式 抽象基类新增平台只需实现子类CDP 模式利用用户浏览器登录态大幅降低风控风险零逆向不需要研究加密算法通过浏览器 JS 上下文拿签名7 平台全覆盖国内主流自媒体平台全部支持多格式存储CSV/JSON/Excel/SQLite/MySQL/PostgreSQL 可插拔WebUIFastAPI Vite非技术人员也能使用文档完善三语 README、VitePress 文档站社区活跃59k Stars有赞助商生态BrowserAct / TikHub / Atlas Cloud 等Pro 版有商业版支持断点续爬、多账号、去 Playwright 依赖等增强功能5.2 风险与不足风险点说明法律风险数据爬取在国内法律灰色地带README 明确声明仅限学习研究单人维护59k stars 项目基本一个人撑长期维护有风险签名依赖平台改前端代码可能失效需要跟进维护版本耦合CDP 模式要求 Chrome 144开源版阉割断点续爬、多账号、去 Playwright 等关键特性在 Pro 版开源版实用性打折抖音/知乎额外依赖这两个平台需要 Node.js 16增加部署复杂度六、商业模型组成部分说明开源版免费功能完整但缺断点续爬/多账号/去Playwright等增强特性MediaCrawlerPro付费增强版含断点续爬、多账号IP池、去除Playwright依赖、Linux支持、AI Agent Skill赞助商BrowserAct白金、TikHub.io、Atlas Cloud、Bloome、NodeMaven打赏微信/支付宝/Buy Me a Coffee社群微信交流群 B站账号引流作者的商业化思路很清晰开源版做流量和口碑Pro 版做变现赞助商做广告收入。这是一套成熟的独立开发者商业模式。七、对现有项目的关联7.1 与 SocialHub 的关系SocialHub 做的是多平台社媒数据看板热榜聚合 账号管理数据来源是 URL 直抓不涉及登录态和签名。MediaCrawler 做的是搜索/详情/评论爬取数据维度不重叠但互补SocialHub 缺搜索能力和评论数据MediaCrawler 缺热榜聚合和账号管理未来整合方向MediaCrawler 的 CDP 模式 平台爬虫架构可以作为 SocialHub 的深度数据采集层但需要明确哪些数据走 URL 直抓、哪些走浏览器自动化。7.2 技术学习价值值得学习的架构模式工厂模式 抽象基类的爬虫架构设计CDP 模式的浏览器操控方式比直接写 Playwright 脚本优雅得多代理池设计— 抽象层 多提供者支持多格式存储层— 可插拔的数据输出配置中心化— 所有开关集中在config/base_config.pyFastAPI Vite的 Web 管理界面架构7.3 闲鱼变现可能不能直接卖软件开源且许可证禁止商业用途但可以做部署定制服务帮不会技术的人搭起来用技术服务非卖软件场景化产品基于此架构做「小红书舆情监控」「抖音竞品分析」等垂直工具需注意法律边界仅限学习研究不能商用八、总体评价维度评分说明技术架构⭐⭐⭐⭐⭐清晰、可扩展、设计模式运用得当实用性⭐⭐⭐⭐开源版功能够用Pro版才完整维护活跃度⭐⭐⭐⭐794 commits近期仍在更新代码质量⭐⭐⭐⭐pre-commit mypy 英文注释质量不低法律风险⚠️需谨慎仅限学习研究不可商用一句话总结技术架构值得学CDP 模式值得抄但生产环境使用需要认真评估法律风险。作为爬虫架构参考和学习材料质量很高。