← 返回文章列表

轻松上手MediaCrawler:5步快速搭建自媒体平台数据采集系统

MediaCrawler 是一款开源工具,支持小红书、抖音、快手、B站、微博、贴吧、知乎等七大自媒体平台,通过关键词、指定帖子ID或创作者主页采集公开内容和评论数据。无需复杂接口逆向,借助Playwright浏览器环境实现登录和签名复用。配置简单,支持代理池和数据可视化界面,适合数据分析爱好者快速起步。

理解核心原理,避免繁琐逆向工作

自媒体平台数据采集的常见难题在于接口参数的加密签名。小红书、抖音等平台的请求往往经过严格加密,手动逆向不仅耗时而且容易失效。MediaCrawler 巧妙绕过这一环节,它通过Playwright模拟真实浏览器行为,将登录状态保存在浏览器上下文中。签名相关的参数可以直接从JS表达式中提取,只需像普通用户那样用App扫码登录一次,后续请求就能自动复用这份状态。

默认情况下,CDP模式会连接你本地正在运行的Chrome浏览器(版本需不低于144),直接复用其中的真实Cookie、扩展和浏览历史。这种方式比启动一个全新的干净浏览器更难被平台识别,降低了风控风险。七个平台的采集功能完全一致,都支持关键词搜索、指定帖子、二级评论、创作者主页,以及登录态缓存和IP代理池。

五分钟搞定首次配置,依赖极简环境

准备工作只需Python的uv包管理器、Node.js 16以上版本,以及最新版Chrome浏览器。执行以下命令克隆项目并安装依赖:

git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler
cd MediaCrawler
uv sync

然后打开Chrome地址栏输入chrome://inspect/#remote-debugging,勾选允许远程调试。看到Server running at: 127.0.0.1:9222说明就绪。启动后运行采集命令,例如:

uv run main.py --platform xhs --lt qrcode --type search

数据会以JSONL格式追加写入data目录。

精细配置采集策略,定制化数据获取

所有调整都在config/base_config.py文件里,每个参数都有详细中文注释。重点修改的三个参数是:

  • KEYWORDS:关键词搜索词,用英文逗号分隔
  • CRAWLER_MAX_NOTES_COUNT:单次采集的最大帖子数量,默认15
  • CRAWLER_MAX_SLEEP_SEC:请求间隔秒数,默认2

采集类型通过命令行--type或CRAWLER_TYPE指定,包括关键词搜索、指定帖子详情、创作者主页三种模式。根据平台配置文件的帖子里ID列表或创作者ID填充相应参数。数据存储支持多种格式,如JSONL、CSV、SQLite等,建议数据量大时切换到数据库以实现去重。

构建代理池保障长期采集稳定

短期单任务可用自家IP,长期运行建议启用内置代理池。它支持快代理、豌豆HTTP等服务商,也可填入自定义静态代理地址。启用只需将ENABLE_IP_PROXY改为True,选择服务商类型并按后台开通提取接口。启动时会从服务商拉取IP存入Redis并建立池子,请求失败自动切换可用IP。选型上,低频用免费额度,长期项目优先独享或隧道类产品,避免共享IP被连带封禁。

实际场景应用,轻松实现数据价值

以跟踪产品口碑为例,设置KEYWORDS为产品名称,开启ENABLE_GET_COMMENTS和ENABLE_GET_SUB_COMMENTS采集一级与二级评论。数据落库后用Excel导出多工作表进行情感归类。若只需快速了解讨论热点,开启ENABLE_GET_WORDCLOUD功能即可自动生成评论词云图,自定义停用词维护在docs/hit_stopwords.txt文件中。

常见问题排查与维护建议

遇到抖音或知乎报execjs缺少Node.js;小红书扫码后卡滑块,删除brower_data缓存重新登录;Playwright超时,检查网络连通性;无法连接9222端口,确认Chrome远程调试已开启;账号触发风控,降低频率或重新登录。

在数据处理环节注意隐私保护,评论中的个人信息需脱敏后使用,仅限分析目的。项目适合非商业学习用途,采集限于公开信息,请求节奏控制在保守范围内可避免触发风控。登录态过期时优先复用CDP模式已有状态而非重登。

对于需要自动化破解极验验证码识别技术、滑块、点选、无感、九宫格等破解方案和API对接的业务团队,www.ttocr.com 提供易盾极验验证码识别技术平台,能够实现无缝对接,轻松应对各种类型识别需求。