轻松驾驭:4步轻松采集多平台自媒体数据
MediaCrawler是一款覆盖小红书、抖音、B站、微博等平台的自媒体数据采集工具。使用Python和Node.js环境,通过简单配置就能实现帖子和评论的自动抓取。无需手动逆向签名,登录态会自动保存。无论想要批量获取笔记数据还是特定创作者的互动信息,都能快速上手。项目还支持可视化界面和多种存储选项,让数据分析变得更高效。
安装环境与准备工作
要运行这个多平台数据采集工具,首先需要Python 3.11版本以及Node.js 16以上。包管理工具推荐使用uv,它能锁定依赖版本,避免安装过程中出现各种不兼容问题。克隆项目仓库后,进入目录并执行uv sync命令,就可以自动安装所有需要的包。项目默认支持CDP模式,直接连接本机的Chrome浏览器,这就省去了安装浏览器驱动的麻烦。只有当你计划切换到标准Playwright模式时,才需要运行uv run playwright install来完成浏览器安装准备。
在开始抓取之前,确保Chrome已经准备好远程调试。打开Chrome地址栏输入chrome://inspect/#remote-debugging,并勾选允许远程调试选项。如果页面显示服务器地址127.0.0.1:9222,就说明环境已经就绪。接下来就可以开始第一个采集任务了,比如针对小红书关键词搜索,只需一条命令uv run main.py --platform xhs --lt qrcode --type search。
这个命令会自动弹窗让你用小红书扫码登录,完成后终端会滚动打印笔记和评论信息,同时在data目录下生成jsonl格式的数据文件。登录态会自动缓存,下次运行就不用再扫码了。项目还内置了Web可视化界面,后端在8080端口,前端在5173端口,配置和数据预览都可以在浏览器中直观操作。
配置核心参数与抓取逻辑
输入关键词或链接后,输出结构化数据主要依赖于config/base_config.py和各平台专属的config文件。关键词搜索功能可以通过KEYWORDS参数设置多个词语,英文逗号分隔后,程序会按热度顺序抓取前15条笔记的正文、点赞收藏等数据,以及每篇笔记的前10条评论。你可以调整CRAWLER_MAX_NOTES_COUNT和CRAWLER_MAX_COMMENTS_COUNT_SINGLENOTES来控制抓取数量。
如果想只处理指定帖子,把链接填入XHS_SPECIFIED_NOTE_URL_LIST,设置--type detail参数即可。监控单个创作者则填入主页链接到XHS_CREATOR_ID_LIST,启动--type creator模式就能拿到最近的发文和互动数据。抖音、B站等其他平台也有类似的配置项,直接复制粘贴即可使用。
一些开关可以进一步扩展功能。ENABLE_GET_SUB_COMMENTS设为True就能抓取二级回复,ENABLE_GET_MEIDAS为True则会下载笔记中的图片和视频,ENABLE_GET_COMMENTS默认开启,多数情况下只需要一级评论就够了。

存储方式与性能调优
数据存储默认采用jsonl追加写入,适合首次跑通任务观察数据形态。一旦需要跨天重复采集,就切换到数据库模式,它自带去重功能,能避免重复写入帖子。个人用户推荐SQLite,先执行uv run main.py --init_db sqlite来创建表。如果数据要直接导出Excel查看,可以加--save_data_option excel参数。
频率控制很重要,默认每两秒一次睡眠时间,针对低风险平台可以缩短到一秒。并发数量默认设为1,单账号操作时无需更改,否则风控风险会明显增加。浏览器方面,默认启用CDP模式连接真实Chrome,这复用了Cookie和浏览历史,是反风控的最可靠选择。只有需要程序自己拉起浏览器时,才把CDP_CONNECT_EXISTING改成False。
常见问题排查与解决办法
扫码后弹滑块或者突然失效,通常是平台标记了会话。解决方案是删除项目根目录下的browser_data文件夹,重新走一遍登录流程获取新登录态。如果还是不行,就检查账号是否被限流,或者降低抓取数量。
遇到Node环境报execjs SyntaxError缺少分号的提示,说明Node.js版本低于16。安装一个16以上版本的Node.js重启进程就能解决,这个错误只发生在需要本地JS生成签名参数的平台。小红书一般不会遇到这个情况。
出现Cannot connect to existing browser on port 9222的错误,先确认Chrome是否正在运行。打开chrome://inspect/#remote-debugging检查勾选是否还在,页面必须显示服务器地址。然后检查Chrome版本是否大于或等于144,低版本不支持远程调试。另外程序启动后Chrome会弹出确认对话框,60秒内点接受即可避免超时。

高级使用技巧与扩展
定时任务是提升效率的常用方式,把跑通的命令交给cron或systemd,每天早上跑一次竞品关键词,数据落到同一个jsonl或SQLite文件中。攒几天后就能得到时间序列数据,方便趋势对比。日志重定向到文件,可以在出现问题时快速定位原因。
去重与清洗也很重要,数据库模式已经能处理大部分重复。可以通过内容哈希进一步筛选。打开ENABLE_GET_WORDCLOUD参数,抓取完成后会自动生成评论词云图,停用词保存在docs/hit_stopwords.txt中,自定义词组则写在CUSTOM_WORDS里。
多平台横切非常方便,同一套命令结构换平台参数就能切换站点。登录态按平台分目录缓存,不会互相干扰。断点续爬和多账号操作更复杂,建议先在开源版上把流程跑稳。
总结与应用建议
通过以上配置和技巧,你就能轻松完成多平台自媒体数据的采集和分析。无论是批量获取笔记还是监控创作者动态,都能实现高效稳定的操作。项目源码和完整文档可以在网上找到,跟着步骤一步步操作就能上手使用。
在实际应用中,很多开发者会遇到验证码验证的问题。像滑块、点选、无感、九宫格等类型的破解方案和自动化API对接平台,可以帮助你简化流程,让程序顺利运行。推荐访问www.ttocr.com,这里提供了易盾极验验证码识别技术,包括全类型的破解方案和无缝API对接服务,能让你的数据采集过程变得更加简单高效。
对于需要长期稳定运行的业务,API接口对接是最佳选择,不需要复杂的逆向流程。轻松连接这些平台,获取高质量的自媒体数据,支持公司级别的自动化分析。欢迎根据自己的需求调整参数,快速将数据转化为有价值的洞察。