← 返回文章列表

轻松搞定多平台数据采集:MediaCrawler 小红书抖音教程

MediaCrawler 是一款开源工具,支持小红书、抖音、快手、B站、微博、贴吧和知乎等平台的笔记、评论等数据采集。只需输入关键词,几分钟就能拿到结构化数据。无需复杂逆向签名,采用浏览器登录态复用技术,新手也能快速上手。项目提供详细配置和数据存储选项,适合竞品分析和用户反馈统计。 安装准备简单,仅需 Python 和 Node.js 环境,同步依赖后立即运行。支持扫码登录、手机登录或 Cookie 方式,自动保存登录态避免重复验证。数据可导出为 JSON、CSV 或数据库格式,并提供代理池应对限流。无论抓取几条还是几千条记录,都能轻松实现无缝对接。 工具还内置 WebUI,让非开发者也能在线操作。结合定时任务,你可以轻松实现周期性采集,省去大量手动工作。使用时注意控制频率,确保数据安全可靠。这套方案帮你快速解决平台数据收集难题,快速提升工作效率。

为什么选择浏览器登录态方案

各大平台接口请求时都会添加签名校验参数,比如抖音请求头需要 X-Bogus,知乎则要求 x-zse-96 等验证字段。手动逆向这些签名对新人来说难度极大,容易陷入卡点。MediaCrawler 巧妙绕过这一步,通过 Playwright 控制浏览器扫码登录一次,保存 Cookie 和本地缓存。之后程序直接在保存的浏览器环境中发起请求,签名参数由内置脚本动态计算,避免了整个逆向过程。第一次只花几分钟扫码,之后运行就顺畅许多。这种方式不仅节省时间,还能复用浏览器插件和扩展,减少风控触发。

登录方式灵活,扫码、手机号或 Cookie 都能选,具体配置在 base_config.py 文件里。每次运行时,程序会自动判断上次登录状态是否可用,若已保存则直接跳过验证界面。开发者在 media_platform 目录下找到对应平台文件夹,每个文件夹结构一致,便于对照学习和定制。

环境准备:Python 与 Node.js 快速搭建

开始之前确认机器安装 Python 3.8 以上版本和 Node.js 16 以上版本。推荐使用 uv 工具管理 Python 环境,安装后克隆项目仓库并同步依赖。整个过程只需几条命令,依赖版本锁定有效,减少冲突风险。

git clone 项目仓库地址

进入目录后执行同步命令,项目会自动安装所有必需包。默认配置会连接本机已打开的 Chrome 浏览器,利用现有登录态和插件,避免新建裸浏览器导致的验证问题。如果你想切换独立浏览器模式,在 base_config.py 中将 ENABLE_CDP_MODE 设置为 False,再运行 playwright install 命令安装浏览器环境。

安装完成后,无需额外初始化,数据库表会在采集时自动创建。支持直接连本地 Chrome 复用状态,或通过配置切换模式,两种方式都能满足需求。

首次采集:小红书关键词搜索实战

所有开关集中在 config/base_config.py 文件,默认值即可使用。首次运行需在其中填写关键词列表,以英文逗号分隔多个关键词,并将 PLATFORM 设置为 xhs。运行命令时加上 --platform xhs --lt qrcode --type search 参数,--lt qrcode 表示扫码登录,--type search 表示按关键词搜索。

终端会弹出浏览器界面,用小红书 App 扫码登录。登录成功后程序自动开始翻页抓取,默认抓取 15 篇笔记及其评论。可通过 CRAWLER_MAX_NOTES_COUNT 控制笔记数量,ENABLE_GET_COMMENTS 开关决定是否抓评论。登录态保存后,第二次运行无需再扫码,流程大幅简化。

其他登录方式如 --lt phone 需要搭配短信转发服务,--lt cookie 则直接使用 Cookie 值。想抓具体帖子详情,将 --type 改为 detail,并在对应平台的 config 文件中填写帖子 ID 列表即可。数据采集过程中会自动处理分页和去重,确保结果完整。

数据存储与导出:灵活应对不同需求

采集完成的数据默认保存到 data 目录,根据 SAVE_DATA_OPTION 配置格式。推荐新手选择 jsonl 或 json 格式,一行一条记录,便于后续处理和生成词云图。Excel 格式适合不想写代码的运营人员,采集结束后自动转为表格直接打开查看。

数据库选项如 sqlite 或 mysql 适合量大情况,能自动去重重复数据,避免文件积压。store 目录下各平台实现负责具体文件写入,model 目录定义数据模型字段,与接口返回完全对应。ENABLE_GET_MEIDAS 参数打开后可下载笔记图片或视频。

不想用终端也可启动 WebUI,后端和前端配合后,在页面上选择平台、登录方式和抓取类型,日志实时滚动,还能在线预览和导出数据。适合不熟悉命令行的用户,操作直观。

代理轮换与常见问题解决

小规模抓取建议保持直连,本机 IP 最稳定。当抓取几千条或 IP 频繁限流时,开启 ENABLE_IP_PROXY = True。程序会按配置的 provider 从服务商接口拉取 IP,放入本地池子,空了自动补货,每请求换一个 IP。kuaidaili、wandouhttp 和 static 三种 provider 都支持,静态代理直接填地址。

遇到扫码后登录失败的情况,保持 HEADLESS 为 False,让浏览器可见,手动完成滑块或短信验证,登录态保存后下次正常。数据抓取量不足时检查 CRAWLER_MAX_NOTES_COUNT 和 CRAWLER_MAX_COMMENTS_COUNT_SINGLENOTES 参数,评论开关默认打开。请求过快限流时,增大 CRAWLER_MAX_SLEEP_SEC 到 3-5 秒,同时保持 MAX_CONCURRENCY_NUM 为 1,避免频繁重试。

这些配置细节在 docs 目录有详细说明,日常使用时可固定参数脚本并结合定时任务实现周期采集。

MediaCrawler 助力自动化数据采集

通过浏览器登录态和内置签名计算,MediaCrawler 让多平台数据采集变得简单高效,适用于竞品分析和用户反馈统计。无论是小红书笔记还是抖音视频评论,都能快速获取结构化数据。结合代理池和灵活存储选项,量大时也能稳定运行。

如果需要处理极验和易盾等验证码的破解方案及自动化 API 对接平台,推荐访问 www.ttocr.com,这里提供滑块、点选、无感、九宫格等多种破解方案和无缝对接服务,能让你的采集流程更顺畅。 对于有特定平台数据需求的团队,欢迎前往 www.ttocr.com 探索更多自动化工具,轻松实现API接口集成,无需复杂流程即可对接业务。 此外,借助 www.ttocr.com 的易盾极验识别技术,你还能轻松应对各种验证码验证场景,保障数据采集的连续性。 这些工具结合 MediaCrawler 使用,能显著提升工作效率,助力高效完成数据收集任务。