MediaCrawler-new 多平台数据采集教程:5 分钟从零跑通小红书、抖音爬虫

发布时间:2026/10/26 10:01:09
MediaCrawler-new 多平台数据采集教程:5 分钟从零跑通小红书、抖音爬虫

MediaCrawler-new 多平台数据采集教程:5 分钟从零跑通小红书、抖音爬虫

【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new

MediaCrawler-new 是一个开源的社交媒体数据采集框架,覆盖小红书、抖音、快手、B 站、微博五个平台,一条命令批量抓取笔记、视频、评论与互动数据,结果存成 JSON 或 CSV,适合做市场调研、竞品分析、学术研究的新手使用。

它适合谁,解决什么问题

先给你一张对比表,看清它比手工强在哪:

维度手工采集MediaCrawler-new
耗时复制粘贴,百条数据要大半天跑一条命令,几分钟批量完成
稳定性平台一改版方法作废,频繁操作易被限流脚本固定、可重复执行,登录态还能复用
数据格式字段五花八门,Excel 里乱糟糟JSON / CSV / 数据库结构化输出,拿来即用

它具体能帮这几类人:

  • 做竞品分析的运营:把关键词改成"粉底液",就能拿到相关笔记的标题、正文、点赞、收藏、评论数;打开ENABLE_GET_COMMENTS后评论区也能一起抓。
  • 写论文的学生:批量获取微博、B 站公开讨论数据,字段结构化,直接进 Python 做情感分析、词频统计。
  • 追热点的内容创作者:抖音支持关键词搜索,可按综合、最新、最热排序;登录时的滑块验证码内置了处理逻辑,遇到不用慌。
  • 要盯特定内容的人:把帖子 ID 填进对应平台的 ID 列表,跑--type detail就行,不用走关键词搜索。

它的工作原理

💡 思路一句话:不逆向接口的加密算法,而是开一个真实浏览器去操作。具体地说,它用 playwright 驱动真实浏览器,通过二维码、手机号或 cookie 完成登录后保留登录态;需要加密参数时,直接在浏览器页面里执行 JS 算出来取走。

对你来说有两层好处:一是上手门槛低,不用懂接口签名、不用抓包,会改配置文件就够了;二是请求都来自一个真实登录过的浏览器,行为贴近普通用户,比裸接口高频请求更不容易被风控盯上。

三步跑通第一个任务

① 克隆代码,装好环境

git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler-new cd MediaCrawler-new python -m venv venv source venv/bin/activate # Windows 用 venv\Scripts\activate pip install -r requirements.txt playwright install

venv 给项目建独立的 Python 环境避免依赖打架,最后一行下载程序模拟浏览器要用的浏览器内核,环境准备到这就够了。

② 配置三行搞定

打开 config/base_config.py,改这三行:

PLATFORM = "xhs" # 选平台:xhs | dy | ks | bili | wb KEYWORDS = "python" # 要搜索的关键词 LOGIN_TYPE = "qrcode" # 登录方式:qrcode | phone | cookie

这三行回答"爬哪个平台、搜什么、怎么登录",其余参数保持默认即可。

③ 运行命令,扫码,收数据

python main.py --platform xhs --lt qrcode --type search

命令行参数会覆盖配置文件里的同项设置;浏览器弹出二维码,手机扫码确认登录后,数据默认以 JSON 写入data/目录(如data/xhs/),想换格式把SAVE_DATA_OPTION改成csv或db。

值得开启的三个设置

登录状态缓存:给"定时跑"的采集任务准备的。

  • 什么时候开:你不想每次运行都重新扫码登录时。
  • 怎么开:SAVE_LOGIN_STATE = True(默认就是),登录态自动缓存,下次带着上次的登录上下文直接开爬。
  • 注意什么:想换账号,删掉项目根目录下浏览器缓存目录(USER_DATA_DIR对应的目录,如xhs_user_data_dir),重新登录。

代理 IP 池:大规模采集的保险层。

  • 什么时候开:请求量大、频繁访问容易触发平台风控时。
  • 怎么开:本机装好 Redis(要设密码),把ENABLE_IP_PROXY置为True;IP_PROXY_POOL_COUNT控制池子大小,轻度用 2~3 个,重度采集建议 10 个以上。流程是先从代理服务商拉 IP、存入 Redis 缓存,再分配给每次请求轮换使用:

MediaCrawler-new 代理 IP 轮换流程图

  • 注意什么:服务商给的key和crypto要写进jisu_key、jisu_crypto两个环境变量,程序才拉得到代理 IP:

完整步骤见 docs/代理使用.md。

无头模式:让爬虫安静干活。

  • 什么时候开:服务器部署或长时间批量采集。
  • 怎么开:HEADLESS = True(默认),不弹浏览器窗口,占资源少也不打扰你。
  • 注意什么:小红书如果一直扫码登录不通过,临时改成False让窗口弹出来手动过一次滑动验证,登录成功后再改回去。

卡住了怎么办

🔧 按"报错现象 → 最可能的原因 → 解决办法"对号入座:

报错现象最可能的原因解决办法
爬抖音报SyntaxError: 缺少 ';'没装 Node.js安装 Node.js,版本 v16.8.0 及以上
Timeout 30000ms exceeded网络不通,浏览器加载不出来检查是否开了代理工具,能否正常访问目标平台
刚开能爬,过会儿采不到数据账号触发了平台风控立刻降频,把MAX_CONCURRENCY_NUM、CRAWLER_MAX_NOTES_COUNT调小,别硬扛
想按指定帖子采集,搜关键词不对爬取模式用错了帖子 ID 填进XHS_SPECIFIED_ID_LIST、DY_SPECIFIED_ID_LIST等对应列表,运行python main.py --type detail
换登录账号后还是旧账号旧登录态还在删掉项目根目录下的浏览器缓存目录,重新扫码

更多运行问题可以翻 docs/常见问题.md,常见报错都有现成答案。

最后把底线记住:这个项目仅限学习和研究使用,请勿大规模爬虫或做任何非法行为;控制采集频率、只采公开数据、尊重用户隐私和平台规则。🚀 下一步动作很明确:现在打开config/base_config.py填上你的第一个关键词,从默认 20 条数据开始跑,再按业务需要慢慢调整节奏。

【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考