← 返回文章列表

社交媒体数据采集利器 MediaCrawler 7 平台一键爬取攻略

MediaCrawler 是一款开源的多平台社交媒体数据采集工具,支持小红书笔记、抖音视频、快手、B站、微博、百度贴吧和知乎等七大平台的公开内容与评论爬取。一条命令即可完成任务,支持 JSONL、Excel 等多种落地格式,并内置 IP 代理池。本文从零到一教你安装配置、扫码登录、数据导出,详细介绍平台支持维度、代理配置、存储方式和常见问题解决方法,帮助你快速拿到第一条目标数据。

为什么选择 MediaCrawler 进行社交媒体数据采集

现在很多时候我们需要分析社交平台上的热门话题,比如小红书上“编程副业”的讨论热度、抖音视频的互动数据,或者知乎的问答趋势。手动复制粘贴根本无法完成这种规模化工作,而且平台反爬机制越来越严。MediaCrawler 就是为此而生,它将浏览器自动化和签名处理结合在一起,让你不用亲自逆向 JS 表达式也能轻松获取数据。

这个工具基于 Playwright 实现浏览器控制,登录态可以缓存复用。扫码登录一次后,下次启动就能直接抓取。无论是关键词搜索笔记还是获取特定帖子的详情,甚至递归抓取评论,都能一次性搞定。它支持将数据保存成 JSONL 格式(一行一条记录,适合程序分析)或 Excel 表格(便于人工审阅和报表生成)。

安装前确保你的环境准备好:Python 3.11 以上作为运行环境,Node.js 16+ 用于抖音和知乎的签名计算,uv 包管理器更快更稳定,Chrome 144 以上版本开启远程调试模式。有了这些,前置准备工作大概 5 分钟就能完成。

环境准备与快速启动流程

第一步,克隆项目到本地:git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler。进入目录后,用 uv sync 同步依赖,这比普通 pip 速度快很多。

打开 config/base_config.py 文件,修改 KEYWORDS 字段,设置你感兴趣的关键词,比如“编程副业”或“科技产品”。默认支持英文逗号分隔多个关键词。

启动爬虫时,可以指定平台、登录方式和数据类型。比如要抓小红书搜索结果,命令为:uv run main.py --platform xhs --lt qrcode --type search。终端会弹出二维码,让你在小红书 App 扫描登录。程序会自动连接你已开启远程调试的 Chrome,弹出确认后点接受,程序就开始采集。

采集完成后,去 data/ 目录查看默认的 JSONL 文件,一行一条笔记或评论信息。想用标准模式而非 CDP 模式,可以把 ENABLE_CDP_MODE 设为 False,再运行 playwright install 命令安装浏览器驱动。

支持的平台与数据维度一览

MediaCrawler 目前覆盖了小红书、抖音、快手、B站、微博、百度贴吧和知乎七大平台,每平台都支持关键词搜索、指定帖子 ID 抓取和创作者主页数据获取。

  • 小红书:支持搜索笔记、二级评论、创作者主页、评论词云。
  • 抖音:同样提供视频互动数据和评论抓取。
  • 快手、B站、微博、贴吧、知乎:每项都具备上述能力。

通过 --type 参数切换三种模式:search 用于关键词搜索,detail 按配置 ID 列表抓具体帖子,creator 直接拉取创作者页面。数据里会包含正文、点赞收藏数、评论量等互动指标,评论支持递归获取二级回复。

代理配置与风控规避技巧

批量采集时,IP 被平台封锁是常见问题。所有代理设置都在 config/base_config.py 里集中管理。

先打开 ENABLE_IP_PROXY 开关,默认是开启状态。然后选择代理服务商,比如 kuaidaili 或 wandouhttp,填写对应的 ID 和密钥。代理池大小默认 2 个,可以根据需要调整。

启动后,日志会实时显示 ProxyIpPool 测试每个 IP 是否有效,通过的 IP 才会参与轮换。数据文件持续写入新记录,说明代理生效正常。遇到全部失败的情况,先检查密钥填写是否正确。

数据存储与格式转换

采集好的数据默认保存在 data/ 目录下,由 SAVE_DATA_OPTION 参数控制存储方式。

{
  "jsonl": "默认追加写入,适合批量分析",
  "excel": "多工作表,人工分析友好",
  "sqlite": "自带去重,轻量数据库"
}

具体用法示例:uv run main.py --platform xhs --lt qrcode --type search --save_data_option excel。SQLite 模式可先执行 --init_db sqlite 初始化,然后自动入库去重。Excel 导出会包含内容表、评论表、创作者表,带自动列宽和样式,直接打开就能用。

常见问题解决与进阶优化

登录滑块频繁弹窗?保持 CDP 模式连接真实浏览器最稳。如果还是不行,删除 browser_data/ 目录重新登录,或把 HEADLESS 设为 False 手动过滑块。

抖音或知乎报 SyntaxError 缺少分号?安装 Node.js 后重试即可。无法连接 Chrome 9222 端口,检查版本、远程调试开关和端口是否监听。

高频采集导致账号风控?调大 CRAWLER_MAX_SLEEP_SEC,控制单次抓取量,删除 browser_data/ 切换新账号。想可视化配置,运行 uvicorn 启动 WebUI,访问 localhost:5173 就能实时看日志和预览。

项目整体结构清晰,各平台 client.py 负责请求,field.py 映射字段,store 实现存储,参考 docs/项目架构文档.md 就能快速适配新需求。

掌握这些基础后,你就能快速爬取到目标平台的第一条数据了。数据分析起来也非常方便,轻松满足日常研究和业务需求。