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 installvenv 给项目建独立的 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),仅供参考