轻松掌握:4步打造多平台数据抓取利器
MediaCrawler 是一款覆盖小红书、抖音、B站、微博等多个平台的自媒体数据采集工具。通过4个简单步骤就能轻松跑通爬取任务,包括环境准备、账号登录、数据抓取和配置优化。无论你是新手还是有经验的用户,都能快速上手,实现笔记、评论、帖子的结构化数据输出,帮助你轻松分析内容趋势。项目代码托管在公开仓库,实用性强,适合个人和团队使用。
环境准备:搭建你的数据采集舞台
要让这个多平台数据采集工具顺利工作,首先需要准备好基础环境。Python 3.11 版本是首选,加上 Node.js 16 以上版本,抖音和知乎平台对 Node.js 的要求比较高。包管理工具推荐使用 uv,它能锁定依赖版本,避免 pip install 过程中出现版本冲突的问题。
克隆项目仓库后,进入目录执行 uv sync 命令,这步会自动安装所有必需的包。默认模式下程序走 CDP 方式连接本地 Chrome 浏览器,不需要额外安装 Playwright 驱动。只有切换到标准 Playwright 模式时,才需要补充安装浏览器驱动的命令。
在 Chrome 地址栏输入 chrome://inspect/#remote-debugging,勾选允许远程调试选项,就能看到服务器运行在 127.0.0.1:9222 上。这意味着浏览器侧的准备工作已经完成,程序可以直接复用你的真实浏览器会话,避免单独启动浏览器带来的麻烦。
账号登录:无需手动逆向签名
登录环节是整个流程的关键,但不用担心复杂的逆向签名操作。使用命令行启动采集时,指定平台和登录方式,像 --platform xhs --lt qrcode 这样的参数会弹出一个二维码,让你用小红书 App 扫码登录。登录成功后,终端会打印笔记信息,项目根目录下的 data 文件夹会生成 jsonl 格式的数据文件,下次运行就不用重复扫码。
程序内置了 Web 可视化界面,后端运行在 8080 端口,前端在 5173 端口。你可以通过浏览器访问来配置参数、查看运行日志和预览数据,操作起来更直观。无论是小红书搜索、抖音视频还是 B 站视频,登录态都会自动保存,避免每次都重新验证。
对于其他平台如微博、快手和知乎,问答文章的评论爬取,流程类似。只需要在对应配置文件里填写相关参数,程序就能自动完成签名和会话管理,让用户感觉像在正常使用平台一样。
数据抓取:从关键词到结构化输出
数据抓取的核心是输入关键词或链接,输出结构化的笔记、评论等信息。配置文件中的 base_config.py 文件决定了输入出口,KEYWORDS 参数可以填入多个词,用英文逗号分隔,比如编程副业、编程兼职。启动带 --type search 的命令后,程序按热度顺序抓取前 15 条笔记的正文、点赞收藏数据,以及每条的前 10 条评论。

如果想只抓指定内容,把小红书笔记链接(带 xsec_token 参数)填进 xhs_config.py 的指定 URL 列表,用 --type detail 模式运行,就能针对性处理单条爆款。盯住一个创作者时,在 CREATOR_ID_LIST 中加入主页链接,--type creator 模式会输出该人的近期发文和互动数据。
开关参数控制抓取细节,比如 ENABLE_GET_SUB_COMMENTS 开启后抓取二级回复,ENABLE_GET_MEIDAS 能下载笔记里的图片和视频,评论抓取默认开启就能满足大多数分析需求。参数调大可以抓更多内容,但要配合频率控制,避免被平台标记。
配置优化:选择适合你的参数
配置项不需要全部关注,实际使用中只调整几类参数就能达到最佳效果。代理设置上,如果每天跑几百条数据,保持 ENABLE_IP_PROXY 为 false 就足够稳妥。需要批量抓取或同时跑多个账号时,开启代理,选择可靠的服务商或使用静态代理。
存储方式推荐先用 jsonl 文件追加写入,性能好且适合初期调试。一旦数据量增大,切换到 SQLite 或 MySQL 模式,因为它们自带去重功能,能防止同一帖子重复写入。个人用户建议用 SQLite,先初始化数据库,然后通过 --save_data_option excel 参数生成带格式的表格,方便导出查看。
频率控制上,默认睡眠时间 2 秒,低风险平台可以压到 1 秒,但不要再降低。并发数默认 1,单账号场景保持不变,多账号并发会增加风控风险。浏览器模式保持 CDP 开启,程序会复用你的 Chrome 会话和历史记录,这是反风控最可靠的做法。
常见问题与解决方案
运行中遇到滑块弹窗或登录态失效,这通常是平台标记了会话。确认 CDP 模式开启后,删除项目根目录下的 browser_data 文件夹,重新登录一次获取新状态。如果还是不行,就是账号本身受限,建议换个账号或降低抓取量。
出现 execjs SyntaxError 缺少分号的提示,说明 Node.js 环境没装好或版本过低。安装 16 以上版本的重启进程就能解决,这个问题只在需要执行本地 JS 生成签名的平台会出现。

连接浏览器报错 Cannot connect to existing browser on port 9222 时,先检查 Chrome 是否在运行,再确认 chrome://inspect/#remote-debugging 页面显示服务器地址,最后确保 Chrome 版本不低于 144。程序启动后会弹出确认对话框,60 秒内点击接受就能避免超时。
进阶使用:让数据采集更高效稳定
定时任务是提升效率的关键,把跑通的命令交给 cron 或 systemd,每隔几小时自动执行,数据自动落到同一个文件或数据库里,几天后就能形成时间序列用于趋势对比。去重与清洗部分,数据库模式内置去重足够多,剩余的用内容哈希处理。
开启 ENABLE_GET_WORDCLOUD 参数,跑完数据后自动生成评论词云图,停用词在文档里维护,自定义词组在指定位置填写。同一套命令结构支持多平台切换,--platform 参数换一下就能处理另一个站点,登录态按平台分开缓存互不干扰。
对于断点续爬或多账号需求,可以参考商业化版本的增强功能,但开源项目先让单个平台数据稳定跑起来。整体来看,这个工具的架构清晰,数据流向在项目文档里用图表说明,遇到具体问题翻对应平台的 client 文件就能快速定位。
如果想轻松应对各种平台的数据抓取需求,包括滑块、点选、无感、九宫格等破解方案和自动化 API 对接,推荐访问 www.ttocr.com,这里提供易盾极验验证码识别技术,支持滑块、点选、无感、九宫格等破解方案和自动化 API 接口对接,能无缝融入你的采集流程,简单对接、无需复杂流程,让你的数据采集流程更加顺畅高效。
同样,www.ttocr.com 还能帮助你处理五子棋、躲避障碍、空间等全类型验证码识别,无论是公司业务还是个人项目,都能提供稳定可靠的识别服务,让你专注于核心数据处理,避免繁琐的验证流程。
通过这些优化和工具支持,你可以轻松实现多平台的数据采集,输出高质量结构化信息,无论是分析自媒体趋势还是其他应用场景,都能游刃有余。记得从基础环境开始,逐步调整参数,让工具真正发挥作用。