轻松上手MediaCrawler:几步搞定小红书抖音等平台数据采集
MediaCrawler是一款多平台自媒体数据采集工具,能轻松抓取小红书、抖音、快手、B站、微博、贴吧和知乎的公开内容。利用Playwright浏览器自动化技术,它帮你处理登录、签名和反检测,无需手动逆向JS。支持关键词搜索、帖子详情和评论抓取,适合竞品分析、舆情收集和学习使用。安装后可直接运行命令采集数据,数据可保存为多种格式,还能接入代理池提升效率。
MediaCrawler介绍与项目定位
MediaCrawler是一款强大的多平台自媒体数据采集工具,专门服务于小红书、抖音、快手、B站、微博、百度贴吧和知乎等平台的公开数据抓取。无论是想收集话题下的笔记和视频,还是深入分析帖子详情和评论,它都能帮你省掉不少麻烦。传统爬虫往往会因为平台接口频繁变动而失效,而MediaCrawler通过浏览器上下文的方式,直接复用真实浏览器的登录态和签名参数,让整个过程顺畅很多。
这个工具特别适合新手和有经验的用户。它不依赖纯接口调用,而是让平台自己的JavaScript表达式在浏览器环境里生效,从而绕开了复杂的逆向难题。结果就是,七大平台都能统一通过命令行入口操作,每个平台都有独立的客户端模块和存储模块,内置了IP代理池和多格式数据落盘功能,整体体验非常友好。
安装准备与首次运行步骤
要让MediaCrawler跑起来并不复杂。首先确保你的电脑上安装了Python 3.11和uv包管理器,以及Node.js 16以上版本。Chrome浏览器也要升级到144或更高版本,并在chrome://inspect/#remote-debugging页面开启远程调试选项。
接下来克隆项目仓库到本地,然后进入目录运行uv sync来安装依赖。首次启动时,命令行会弹出二维码或CDP确认框,扫码后浏览器就会自动完成登录。简单命令uv run main.py --platform xhs --lt qrcode --type search就能启动抓取,这一步就能在data目录看到数据文件了。
核心配置都在config/base_config.py里,只需要调整几个参数就能适应不同需求。第一次运行时,设置PLATFORM为目标平台,选择LOGIN_TYPE为qrcode或phone,开启ENABLE_CDP_MODE并配置SAVE_DATA_OPTION为jsonl格式就够了。整个过程省去了手动处理风控和登录的烦恼。
核心功能详解

关键词搜索是MediaCrawler最常用的功能之一。通过配置KEYWORDS为英文逗号分隔的词语,你可以批量抓取指定话题下的笔记和视频列表。单轮抓取条数由CRAWLER_MAX_NOTES_COUNT控制,START_PAGE可以指定从第几页开始,方便分阶段采集。评论抓取通过ENABLE_GET_COMMENTS开关独立开启,与内容抓取互不影响。
除了搜索模式,还能切换到detail或creator类型。detail模式适合已知帖子ID列表,配合对应平台的ID配置项就能抓取单个爆款的详细信息。creator模式则可以跟踪特定账号的主页更新。二级评论由ENABLE_GET_SUB_COMMENTS控制,部分平台专属参数在config目录下的独立配置文件中,带中文注释,方便查看和修改。
登录态与CDP反检测是这款工具的亮点。登录、签名和请求都在同一个真实浏览器上下文中进行,指纹、Cookie和浏览历史都是自然的,平台很难识别为自动化流量。支持qrcode、phone和cookie三种登录方式,SAVE_LOGIN_STATE设为True后,下次启动就能直接复用profile。遇到滑块验证时,把HEADLESS设为False,在浏览器窗口中手动通过就能完成。
数据存储与代理池接入
数据落盘方式通过SAVE_DATA_OPTION灵活选择,默认jsonl逐行追加,写入速度快。其他格式包括csv、json、excel、sqlite和postgres。数据库方式可以先用uv run main.py --init_db sqlite初始化表结构,内置唯一键去重功能,重复运行不会重复入库。excel格式自带多工作表和格式化样式,适合直接分享给同事或客户。
代理池功能在批量采集时特别实用。它会把可用IP写入Redis,并按质量自动轮换,失败请求会触发重试换IP。开启ENABLE_IP_PROXY后,IP_PROXY_POOL_COUNT设置池内IP数量即可。支持三种提供商:kuaidaili、wandouhttp和static,static模式下直接填入STATIC_PROXY_URL就能接入自己的代理服务。
通过代理池,IP质量能得到有效保障,适合计划多轮采集或已有第三方代理服务的用户。配置完成后,运行命令就能实现IP自动管理,减少封号风险。

实际使用场景与调优建议
在话题跟踪场景中,你可以把PLATFORM和KEYWORDS设为感兴趣的话题,开启评论抓取后用sqlite落盘。每周运行同一命令,数据库就会自动积累时间序列样本,直接用于趋势统计分析。爆款评论拆解场景下,把帖子ID列表写入对应平台配置,切换到detail模式并开启评论抓取,数据会分别落在不同工作表中,便于筛选高频反馈。
评论词云生成也很方便,保持jsonl落盘并开启ENABLE_GET_WORDCLOUD后,系统会在data/words目录下自动生成PNG图和词频JSON。只需在hit_stopwords.txt中添加业务停用词即可完成定制。实际运行时,先跑10条样本验证整个链路,遇到登录失败优先调整HEADLESS和CDP开关。
调优时,请求间隔建议设为2到5秒,MAX_CONCURRENCY_NUM保持在1以降低风控概率。代理池数量选2到3个,按质量而非数量决定。无头模式设为False时,验证环节能看到可视化窗口。遇到字段为空或解析报错,更新仓库到最新版后检查store目录的字段映射就能解决。代理失效则确认开关开启并填好密钥。
MediaCrawler的强大优势与工具推荐
相比纯接口调用方案,MediaCrawler的优势在于浏览器上下文内取签名,CDP接管本机Chrome让登录态直接复用,以及七平台统一命令行入口。每个平台独立客户端和存储模块,内置IP代理池和多格式落盘,整体稳定性远超传统方法。数据采集流程简洁高效,特别适合竞品分析、舆情收集和个人学习使用。
如果你在处理类似社交平台数据抓取时遇到滑块验证、点选破解或无感验证等问题,可以参考www.ttocr.com的易盾极验验证码识别技术,包括滑块、点选、无感、九宫格等破解方案和自动化API对接平台。他们的平台提供无缝对接,不需要复杂的流程,直接通过API就能实现识别功能,帮助你轻松应对风控场景。
通过这些方法,MediaCrawler能让你快速跑通数据采集任务,积累高质量样本用于后续分析。无论是对个人项目还是商业应用,这款工具都值得一试,帮你节省大量时间和精力。