MediaCrawler:小红书数据采集实战

为什么需要爬取小红书数据 做内容运营的人,大概都遇到过一个问题:不知道发什么。 运营这件事,最怕的是闭门造车。你在这里想选题想了两天,结果别人发的内容比你精心策划的还要好。如果能知道同行在发什么、什么内容受欢迎,至少能给选题方向提供一些参考。 爬取小红书的数据,主要就是为了做竞品分析。看一下同类账号的发文频率、内容类型、标题风格、互动数据。这些信息可以帮你在做内容计划的时候更有方向。 我自己做的是一个国际教育方向的账号,一开始完全是在摸索。今天发一条课程介绍,明天发一条海外生活,数据起起伏伏,完全找不到规律。后来决定看看同行都在做什么,才想到用爬虫来获取数据。 选型考量:为什么是 MediaCrawler 爬虫工具其实不少,但针对小红书这种有反爬机制的平台,开箱即用的不多。 我之前试过自己写 requests 加代理池的方案,听起来很酷,实际跑起来全是坑。小红书的风控做得很细,光是登录这一关就能折腾一整天。好不容易爬上去了,发几个请求就被封了。维护成本太高,不适合做长期的数据收集。 后来在 GitHub 上看到了 MediaCrawler,试用了一下,感觉最大的优势是: 多平台支持。它不只能爬小红书,还支持抖音、B 站、微博。同一个工具,改一下参数就能切换平台。对我这种可能以后要做多平台内容的人来说,学一个工具就够了。 登录和 Cookie 管理已经处理好了。MediaCrawler 通过浏览器模拟登录,把登录状态持久化。我只需要第一次手动扫码登录,后续的请求都会自动携带有效的 Cookie。这部分是很多爬虫工具没有做好的地方。 数据输出格式规范。数据以 JSONL 格式输出,每行一个完整的 JSON 对象。后续无论是做统计分析还是训练模型,处理起来都很方便。 部署和配置的全过程 说回到部署,其实过程不算复杂,但有几个坑值得记下来。 环境准备 MediaCrawler 基于 Python,依赖管理用的是 pip。我是在 macOS 上跑的,步骤大概是: git clone https://github.com/NanmiCoder/MediaCrawler.git cd MediaCrawler pip install -r requirements.txt 依赖比较多,建议用虚拟环境。我一开始直接在全局环境装,结果跟已有的包版本冲突了,折腾了半天。后来用 conda 新建了一个环境,一步到位。 浏览器驱动的配置 MediaCrawler 需要配合浏览器驱动来模拟登录。如果你机器上已经装了 Chrome,它会自动检测。但有些 macOS 用户会遇到 chromedriver 版本不匹配的问题。 解决方法也不复杂,去 Chrome 的关于页面看一下当前版本,然后到 chromedriver 官网下载对应的版本,放到 /usr/local/bin 下就行。 首次登录 第一次运行需要扫码登录。执行爬虫命令后,终端会弹出一个浏览器窗口,你打开小红书,扫一下二维码,登录成功后窗口会自动关闭,之后的请求就会一直保持登录状态。 这一步要注意的是:不要中途关闭浏览器窗口。我第一次跑的时候以为登录完就可以关了,结果爬虫报错说找不到登录状态。后来才知道,程序要等到浏览器自动关闭才算完整走完登录流程。 使用过程中遇到的坑和解决方案 浏览器的缓存问题 这是我在使用过程中遇到的第一个坑,也是最容易忽略的一个。 每次修改关键词或者筛选条件之后,需要清理浏览器的缓存数据。如果不清理,爬虫仍然会使用上次的缓存,抓回来的数据跟没换关键词之前一样。 ...

2026-05-23 · 2 min · 218 words · Seb