MediaCrawler爬虫工具完整指南:3步跑通媒体数据采集环境
【免费下载链接】MediaCrawler小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 | 评论爬虫、微博帖子 | 评论爬虫、百度贴吧帖子 | 百度贴吧评论回复爬虫 | 知乎问答文章|评论爬虫项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler
想批量抓取小红书笔记和抖音评论,却被登录态和反爬机制卡住?MediaCrawler是一款开源媒体数据采集工具:一套配置就能抓小红书、抖音、B站、知乎等7个平台的笔记、视频和评论,结果直接落成CSV或数据库。
项目速览
一句话定性:它是基于Playwright浏览器自动化的多平台爬虫框架,不做JS签名逆向——直接复用已登录的浏览器上下文拿签名参数,技术门槛比传统逆向方案低很多。
| 平台 | 可抓数据 | 共同能力 |
|---|---|---|
| 小红书 / 抖音 / 快手 / B站 | 笔记、视频、评论 | 关键词搜索、按ID指定爬取 |
| 微博 / 百度贴吧 / 知乎 | 帖子、问答、评论 | 二级评论、创作者主页 |
七个平台统一支持:登录态缓存、IP代理池、评论词云图,存储可选CSV、JSON、SQLite、MySQL、MongoDB、Excel。
快速上手
环境要求:先装好这三样
- Python + uv(包管理,
uv --version能出版本号即可) - Node.js 16.0 以上(抖音、知乎的签名脚本依赖它)
- Chrome 144 以上(项目默认走CDP模式连接你本机浏览器,复用真实登录态,风控风险最低)
获取代码并同步依赖
git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler cd MediaCrawler uv sync最简配置跑起来
打开config/base_config.py,按中文注释填好平台、关键词、存储格式三项即可,其余保持默认。然后让Chrome开启远程调试:地址栏输入chrome://inspect/#remote-debugging勾选允许,页面出现Server running at: 127.0.0.1:9222就就绪了。最后运行:
uv run main.py --platform xhs --lt qrcode --type search扫码登录,数据就按配置落盘。不想碰命令行也可以起WebUI可视化界面(后端api/+ 前端webui/各起一个进程),填参数、看实时日志、预览导出都在页面上完成:
WebUI界面:左侧配置平台与登录方式,右侧选存储格式,下方终端实时滚动爬取日志
工作机制拆解
整个采集链路拆成"请求、反爬、解析、存储"四段,每段独立成模块,出问题时知道往哪找。
- 入口与配置:
main.py接收命令行参数,config/是所有开关的唯一出处 - 浏览器与登录:
tools/browser_launcher.py管理Playwright/CDP浏览器,登录态落盘缓存,不用每次重扫 - 请求与反爬:
media_platform/<平台>/client.py发请求,proxy/维护代理IP池,失效自动轮换 - 解析:
field.py把各平台原始JSON映射成model/下的统一数据结构 - 存储:
store/按平台分实现,database/对接关系型与文档型数据库,切换只改配置
数据流转路径:输入关键词或帖子ID → 浏览器带代理发请求 → 解析成结构化模型 → 写入文件或数据库 → 可选生成评论词云。代理池的完整请求流程见下图:
MediaCrawler爬虫工具代理IP池请求流程与失效轮换机制图
代理IP池工作机制:从服务商拉取IP、写入缓存、失效检测与轮换的完整链路
各模块职责与调用关系的完整说明见项目架构文档。
实战场景
场景一:连锁咖啡品牌盯新品口碑
- 谁在用:区域门店的运营负责人
- 怎么配置:
--platform tieba和--platform weibo各跑一次,关键词设为"品牌名+城市",CSV存储,每天定时执行 - 拿到什么:每日新增提及表和二级评论,"配送太慢""杯套没送"这类抱怨当天就能甩进运营群,比刷论坛快一个数量级
场景二:短视频代投机构拆竞品钩子
- 谁在用:给食品品牌投流的广告优化师
- 怎么配置:
--platform douyin,type设为创作者主页,填竞品账号,打开评论词云生成 - 拿到什么:视频列表+评论量+词云高频词(价格、成分、前后对比),下一轮脚本直接照着用户嘴里的词写
场景三:研究生建问答语料库
- 谁在用:做文本分析方向的硕士生
- 怎么配置:
--platform zhihu,type设为detail,配置里填目标问题ID列表,存储切到MongoDB - 拿到什么:整批答案加评论数据,Python里直接读出来做统计,不用手写一套知乎请求逻辑
避坑清单
采集任务频繁失败,先查这两处:登录态是否过期(重新扫码)和代理IP是否失效。别瞎猜,控制台日志里会写明是哪种错误。
连不上浏览器:CDP模式要求Chrome 144以上,且必须在chrome://inspect/#remote-debugging里开启远程调试(端口9222)。不想用CDP就在config/base_config.py里设ENABLE_CDP_MODE = False,并执行uv run playwright install装驱动,细节见CDP模式使用指南。
代理配了不生效:依次核对三件事——config/base_config.py里的代理服务商选对没有、密钥是否通过环境变量注入(以极速HTTP为例,读jishu_key)、服务商后台白名单有没有加你的出口IP:
proxy_ip_provider.py 中从环境变量读取代理密钥的位置,红框处为极速HTTP的key注入点
更多服务商接入方式见代理使用文档。
平台接口变了导致解析失败:只改对应平台的client.py/field.py,其余六个平台互不影响,这是模块化拆分的直接好处。
数据量大、文件写不动:在base_config.py把存储切到SQLite/MySQL/MongoDB,选型建议看数据存储指南。
结尾
七个平台、五种存储、登录态和反爬都替你处理完,这就是MediaCrawler的"开箱即用"。别光看文档,先跑一条关键词搜索,打开CSV确认数据落盘,再按自己的场景往下扩。
【免费下载链接】MediaCrawler小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 | 评论爬虫、微博帖子 | 评论爬虫、百度贴吧帖子 | 百度贴吧评论回复爬虫 | 知乎问答文章|评论爬虫项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考