社交媒体数据采集完整指南:用MediaCrawler免费抓取五大平台公开内容
【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new
还在为收集小红书、抖音、快手、B站、微博的公开数据熬夜加班吗?MediaCrawler是一款开源的社交媒体数据采集工具,一条命令就能替你完成关键词搜索、帖子抓取、评论归档这些重复劳动。想象一下,你只需要在终端敲下一行命令、用手机扫一次码,程序就会自动打开浏览器逐条翻页,把成百上千条内容整整齐齐写进表格——而你,可以腾出手去思考真正重要的问题。
这份指南会按照"先看清能力、再动手安装、然后跑通、最后进阶"的节奏展开,文中所有命令与配置均基于真实项目源码,照着敲就能跑通。
💡 先看清全貌:这一个工具能替你抓回哪些数据
MediaCrawler 覆盖五大主流平台,抓取内容涵盖视频、图片、评论、点赞、转发、收藏等信息。它不是逐平台拼凑的"半个轮子",而是围绕统一接口设计的整体方案——五个平台的调用方式完全一致,学会一个就等于学会五个。
手工采集的典型痛点与项目给出的解法,可以对照这张表看:
| 手工采集的痛点 | MediaCrawler 的对应解法 |
|---|---|
| 平台加密参数复杂,逆向成本极高 | 用 Playwright 接管真实浏览器,免去复现加密 JS |
| 请求频繁导致 IP 被封 | 内置代理IP池,自动轮换、过期回收 |
| 登录验证环节繁琐 | 二维码 / 手机号 / Cookie 三种方式,登录状态自动缓存 |
| 数据结构五花八门 | 统一字段定义,输出 json / csv / 数据库三种格式 |
各平台的完整能力矩阵如下:
| 平台 | 二维码登录 | 关键词搜索 | 指定ID爬取 | 创作者主页 | 数据保存 | IP代理池 |
|---|---|---|---|---|---|---|
| 小红书 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 抖音 | ✅ | ✅ | ✅ | ✕ | ✅ | ✅ |
| 快手 | ✅ | ✅ | ✅ | ✕ | ✅ | ✅ |
| B站 | ✅ | ✅ | ✅ | ✕ | ✅ | ✅ |
| 微博 | ✅ | ✅ | ✅ | ✕ | ✅ | ✅ |
其中创作者主页追踪目前仅开放给小红书,而B站额外支持视频批量下载,这两项会在进阶章节单独演示。
🔧 环境搭建不迷路:虚拟环境、依赖库与浏览器驱动一次装齐
整个安装过程只需要四条命令,建议使用 Python 3.9 及以上版本。
# 1. 把项目拉到本地 git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler-new cd MediaCrawler-new # 2. 创建并激活虚拟环境(避免污染全局环境) python -m venv venv # Linux / macOS 激活: source venv/bin/activate # Windows 激活: venv\Scripts\activate # 3. 安装项目依赖 pip install -r requirements.txt # 4. 安装 Playwright 的浏览器驱动(爬虫运行的基础) playwright install每一步的预期效果:第 2 步完成后命令行提示符前会出现(venv)前缀;第 3 步末尾出现Successfully installed ...;第 4 步会自动下载 Chromium 内核,看到Download completed即算完成。
小提示:只有开启代理IP池或选择数据库存储时,才需要额外准备 Redis 与 MySQL。默认的 json / csv 模式不依赖任何外部服务。
🚀 第一次跑通采集:从扫码登录到生成数据文件
环境就绪后,先跑一个最经典的组合——用关键词搜索抓取小红书内容:
python main.py --platform xhs --lt qrcode --type search参数说明:--platform选目标平台(xhs / dy / ks / bili / wb);--lt选登录方式(qrcode / phone / cookie);--type选采集类型(search / detail / creator)。
整个流程会这样发生:
- 程序自动打开一个浏览器窗口;
- 窗口内展示登录二维码,用手机小红书 App 扫码确认;
- 程序按
config/base_config.py中KEYWORDS设定的关键词逐条搜索; - 终端滚动输出每条内容的抓取日志;
- 结束后在
data/目录找到生成的 json 文件,帖子连同点赞、评论、作者信息都记录在案。
如果不想每次都被浏览器窗口打扰,把配置文件中的HEADLESS设为True,程序就会安静地在后台运行。
⚙️ 摸清配置文件:几个开关决定采集的深度与广度
项目的灵魂在config/base_config.py,读懂它你就握住了采集的"方向盘":
PLATFORM = "xhs" # 目标平台:xhs / dy / ks / bili / wb KEYWORDS = "python,golang" # 搜索关键词,多个用英文逗号分隔 LOGIN_TYPE = "qrcode" # 登录方式:qrcode / phone / cookie CRAWLER_TYPE = "search" # 采集类型:search / detail / creator CRAWLER_MAX_NOTES_COUNT = 20 # 单次采集条数上限 MAX_CONCURRENCY_NUM = 4 # 并发数量,调高提速、调低更稳 ENABLE_GET_COMMENTS = False # 设为 True 后连同评论一起抓取 SAVE_DATA_OPTION = "json" # 数据保存方式:json / csv / db三种保存方式怎么选?json 结构完整、适合程序化处理,是默认推荐;csv 可直接用 Excel 打开,适合快速浏览;db 适合大规模入库,需在config/db_config.py配置 MySQL 连接。想抓评论就把ENABLE_GET_COMMENTS改成True,想多抓就把CRAWLER_MAX_NOTES_COUNT调大,改完重启命令即生效。
🛡️ 进阶玩法一:给爬虫装上"分身术",用代理IP池稳住长跑
连续大批量采集时,同一 IP 的请求频率很容易触发平台风控。MediaCrawler 内置的代理IP池会在池内轮换出口 IP,把风险摊薄到多个地址上。下图展示了从拉取 IP 到建成池子的完整链路:

从IP服务商拉取→写入Redis缓存→构建代理池→按需取出,全程自动化
启用方式同样简单,两行配置即可:
ENABLE_IP_PROXY = True # 开启代理IP功能 IP_PROXY_POOL_COUNT = 5 # 代理池容量,按采集量调整代理 IP 由第三方服务商提供,项目内置了"极速HTTP"的实现。去服务商官网注册后拿到key和crypto两个凭证,在后台选择 IP 数量、使用时长与协议类型,即可生成带密钥的 API 链接:
拿到凭证后,推荐通过环境变量注入,避免把密钥写死在代码里:
# proxy/proxy_ip_provider.py 中通过环境变量读取密钥 key = os.getenv("jisu_key", "") # 提取 key 值 crypto = os.getenv("jisu_crypto", "") # 加密签名密钥不落盘,用环境变量动态注入,兼顾安全与灵活
代理池的实现细节也很讲究:每次拉取的 IP 连同过期时间一起写进 Redis,到期自动失效回收;再次请求时优先复用池内未过期的 IP,数量不足才向服务商补充。容量参考:轻度使用 2-3 个、中度 5-10 个、重度可放宽到 10 个以上并考虑住宅代理。
🎯 进阶玩法二:按ID定点采集与创作者主页追踪
关键词搜索解决"广撒网",定点采集解决"精准捞"。把CRAWLER_TYPE改为detail,程序就只抓取指定 ID 的帖子,非常适合对某条爆款做深挖:
# 各平台的指定ID列表,填入即可定向采集 XHS_SPECIFIED_ID_LIST = ["6422c2750000000027000d88", "..."] DY_SPECIFIED_ID_LIST = ["7280854932641664319", "..."] BILI_SPECIFIED_ID_LIST = ["BV1d54y1g7db", "..."]把CRAWLER_TYPE改为creator并填写XHS_CREATOR_ID_LIST,就能持续追踪某位小红书创作者的动态,自动抓取其主页发布的新笔记——对竞品账号监测、达人筛选非常实用。如果你在使用 B 站,还可以切换到download_video采集类型,把指定 BVID 的视频文件批量下载到本地./video/目录,素材收集一步到位。
🧩 三种身份的真实用法:分析师、创作者与研究者的落地清单
身份一:市场分析师,用关键词+评论摸清产品口碑
- 配置
KEYWORDS = "粉底液,遮瑕膏,口红",打开ENABLE_GET_COMMENTS,SAVE_DATA_OPTION设为csv; - 运行关键词搜索,得到带评论文本的表格;
- 按情感倾向、提及频次做交叉分析,定位用户真实槽点与爽点。
身份二:内容创作者,用热度数据反推选题方向
- 抓取抖音目标赛道近期热门视频,
CRAWLER_MAX_NOTES_COUNT调大到 50; - 对比点赞、评论、转发的分布规律,找出"高赞低评"与"低赞高评"的内容类型;
- 围绕高互动特征优化自己的选题与封面文案。
身份三:学术研究者,用微博数据做舆情观察
- 把研究话题写入
KEYWORDS,登录方式选择 Cookie 避免频繁扫码; - 采集一段时间窗口内的公开讨论文本;
- 结合发布时间、用户身份等字段做传播路径与情感分析。
⚠️ 从报错到解决:新手最容易卡住的四个环节
Q1:扫码后一直提示登录失败?检查网络是否稳定;尝试删除browser_data目录下的缓存后重新登录;如果反复失败,可以改用 Cookie 登录方式。
Q2:跑完发现一条数据都没抓到?先确认KEYWORDS非空且拼写正确,再检查CRAWLER_MAX_NOTES_COUNT是否被意外设为 0,最后留意终端日志中是否有平台返回的访问限制提示。
Q3:采集速度太慢,有没有提速手段?适当调大MAX_CONCURRENCY_NUM提升并发;开启代理IP池分散请求压力;尽量避开平台晚间高峰时段运行。
Q4:抖音采集时弹出滑块验证?把HEADLESS改为False让浏览器窗口可见,手动通过一次滑块验证后再继续,后续会话会记住该状态。
📚 两条获取支持的路径与项目接下来的规划
遇到文档没覆盖的报错,建议先翻阅项目自带的说明:项目代码结构、常见问题、手机号登录说明。动手改代码前,先读一遍main.py的入口逻辑和config/base_config.py的配置注释,大部分疑问都能在这两个文件里找到答案。
项目仍在持续迭代,社区规划的方向包括:接入更多国际平台(如 Instagram、Twitter)的采集能力;基于机器学习优化采集频率与内容筛选;内置数据分析与可视化模块;支持一键部署到云端并提供 RESTful API 供外部系统调用。
✅ 四步行动清单与合规提醒
记住,工具只是起点,真正有价值的是你用它沉淀下来的洞察与判断。如果想立刻开始,按下面四步走:
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler-new - 按"环境搭建"一节完成安装,用
python main.py --help验证命令可用; - 先用小红书关键词搜索跑通第一次采集,观察
data/目录的输出; - 再按需开启评论、代理池、定点采集等进阶能力,形成自己的采集方案。
最后请务必注意:请遵守相关法律法规与各平台的服务条款,仅将本项目用于合法的学习与研究目的,不采集非公开数据,不用于商业或任何侵害他人权益的场景。尊重数据隐私,共同维护良好的网络生态。
【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考