社交媒体数据采集完整指南:用MediaCrawler免费抓取五大平台公开内容
2026/8/15 16:08:54 网站建设 项目流程

社交媒体数据采集完整指南:用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)。

整个流程会这样发生:

  1. 程序自动打开一个浏览器窗口;
  2. 窗口内展示登录二维码,用手机小红书 App 扫码确认;
  3. 程序按config/base_config.pyKEYWORDS设定的关键词逐条搜索;
  4. 终端滚动输出每条内容的抓取日志;
  5. 结束后在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 到建成池子的完整链路:

![MediaCrawler数据采集代理IP池化流程图](https://raw.gitcode.com/GitHub_Trending/me/MediaCrawler-new/raw/387f08701788e8e626b688ecf6ef50f669a80b75/static/images/代理IP 流程图.drawio.png?utm_source=gitcode_repo_files)

从IP服务商拉取→写入Redis缓存→构建代理池→按需取出,全程自动化

启用方式同样简单,两行配置即可:

ENABLE_IP_PROXY = True # 开启代理IP功能 IP_PROXY_POOL_COUNT = 5 # 代理池容量,按采集量调整

代理 IP 由第三方服务商提供,项目内置了"极速HTTP"的实现。去服务商官网注册后拿到keycrypto两个凭证,在后台选择 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/目录,素材收集一步到位。

🧩 三种身份的真实用法:分析师、创作者与研究者的落地清单

身份一:市场分析师,用关键词+评论摸清产品口碑

  1. 配置KEYWORDS = "粉底液,遮瑕膏,口红",打开ENABLE_GET_COMMENTSSAVE_DATA_OPTION设为csv
  2. 运行关键词搜索,得到带评论文本的表格;
  3. 按情感倾向、提及频次做交叉分析,定位用户真实槽点与爽点。

身份二:内容创作者,用热度数据反推选题方向

  1. 抓取抖音目标赛道近期热门视频,CRAWLER_MAX_NOTES_COUNT调大到 50;
  2. 对比点赞、评论、转发的分布规律,找出"高赞低评"与"低赞高评"的内容类型;
  3. 围绕高互动特征优化自己的选题与封面文案。

身份三:学术研究者,用微博数据做舆情观察

  1. 把研究话题写入KEYWORDS,登录方式选择 Cookie 避免频繁扫码;
  2. 采集一段时间窗口内的公开讨论文本;
  3. 结合发布时间、用户身份等字段做传播路径与情感分析。

⚠️ 从报错到解决:新手最容易卡住的四个环节

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 供外部系统调用。

✅ 四步行动清单与合规提醒

记住,工具只是起点,真正有价值的是你用它沉淀下来的洞察与判断。如果想立刻开始,按下面四步走:

  1. 克隆仓库:git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler-new
  2. 按"环境搭建"一节完成安装,用python main.py --help验证命令可用;
  3. 先用小红书关键词搜索跑通第一次采集,观察data/目录的输出;
  4. 再按需开启评论、代理池、定点采集等进阶能力,形成自己的采集方案。

最后请务必注意:请遵守相关法律法规与各平台的服务条款,仅将本项目用于合法的学习与研究目的,不采集非公开数据,不用于商业或任何侵害他人权益的场景。尊重数据隐私,共同维护良好的网络生态。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询