MediaCrawler 媒体爬虫快速上手:如何 30 分钟采到第一批数据
【免费下载链接】MediaCrawler小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 | 评论爬虫、微博帖子 | 评论爬虫、百度贴吧帖子 | 百度贴吧评论回复爬虫 | 知乎问答文章|评论爬虫项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler
需要批量拿小红书、抖音、快手、B站的笔记、视频和评论数据时,MediaCrawler 是一个可以直接用起来的开源媒体爬虫:真实浏览器维持登录态、免 JS 逆向,装好依赖、扫码登录就能开始采集,数据默认落到data/目录,直接接你的分析流程。
三步跑通第一次采集
整套环境只需要四样东西:Python 3.11、包管理工具 uv、Node.js(≥16,仅抖音和知乎需要)、Chrome(≥144,仅默认 CDP 模式需要)。缺哪样装哪样,其余平台不依赖 Node.js。
拉代码、装依赖
git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler cd MediaCrawler uv sync改两个配置项:打开 config/base_config.py,确认
PLATFORM是目标平台(如xhs),把KEYWORDS填成你要搜的关键词(英文逗号分隔)。其余保持默认。跑第一个任务:如果用的是 CDP 模式,先按 CDP 模式使用指南 在 Chrome 里打开远程调试;然后执行:
uv run main.py --platform xhs --lt qrcode --type search用 App 扫弹出的二维码,任务结束后到
data/目录看结果文件——有内容了就算跑通了。如果不想走 CDP、改用标准 Playwright 模式,补跑一次uv run playwright install安装浏览器驱动即可。
代码组织是"平台目录 + 存储层 + 配置层"的清晰分层,后续排错时知道去哪里找:
这些设置项,按需再改
配置集中在 config/ 目录,base_config.py放通用项,每个平台另有独立文件。默认值足以跑通,下面几项只在特定情况下才需要动:
| 设置项 | 作用 | 什么时候才改 |
|---|---|---|
PLATFORM/CRAWLER_TYPE | 目标平台;search关键词搜、detail指定帖子、creator创作者主页 | 切平台做抖音数据采集配置(改成dy),或要盯某个博主主页时 |
KEYWORDS | 搜索关键词,英文逗号分隔 | 每轮采集换主题时 |
SAVE_DATA_OPTION | 默认jsonl,可选csv、json、excel、sqlite、db(MySQL)、postgres | 要直接进表格分析选excel,要落库查询选sqlite |
CRAWLER_MAX_NOTES_COUNT | 单次采集帖子上限,默认 15 | 批量任务时调大 |
CRAWLER_MAX_SLEEP_SEC | 请求间隔秒数,默认 2 | 出现 403、限流时调大 |
ENABLE_IP_PROXY | 是否启用 IP 代理池 | 长时间或高频采集时 |
数据库方式落库前先执行uv run main.py --init_db sqlite初始化,各存储格式的完整用法见数据保存指南,database/目录下另有 MongoDB 存储基类可供扩展。
让采集更稳的 4 个动作
请求间隔别低于 2 秒。
CRAWLER_MAX_SLEEP_SEC = 2是底线,一旦日志里开始冒 403,先加到 3~5 再考虑别的。长任务开代理池轮换。把
ENABLE_IP_PROXY设为True,IP_PROXY_PROVIDER_NAME在kuaidaili/wandouhttp/static里选:第三方服务商从 proxy/providers/ 选对应实现并按其 README 填密钥;自己手里有固定代理就选static,把地址写进STATIC_PROXY_URL。轮换流程如下图所示,IP 到期后池子会自动向服务商重新提取:爬虫代理设置:代理 IP 提取与轮换流程图
重复采集交给数据库去重。文件模式反复跑同一关键词会堆重复记录,改用
--save_data_option sqlite后存储层自带按内容去重,跑多少次都干净。用真实浏览器 + 保留登录态。默认的 CDP 模式连接你本机的 Chrome,带着真实 Cookie 和扩展历史,比新建 headless 环境更容易过风控;
SAVE_LOGIN_STATE = True让登录态落盘,下次免扫码。登录反复失败时把HEADLESS设为False,手动过掉滑块再试。
出问题时按这张表排查
| 现象 | 常见原因 | 动作 |
|---|---|---|
| 扫码登录卡住、一直失败 | 风控拦截了无头环境 | HEADLESS = False,浏览器里手动过验证;仍不稳定就保持 CDP 模式 |
| 浏览器起不来、连接超时 | Chrome 版本过旧或未开远程调试 | 升级 Chrome ≥144,确认chrome://inspect/#remote-debugging已开启 |
| 解析失败、字段大量为空 | 平台接口或页面结构变动 | 拉取项目最新代码重试,仍失败再进media_platform/对应平台目录核对解析逻辑 |
| 403 频发、请求被拦 | 间隔过短、IP 被标记 | 调大CRAWLER_MAX_SLEEP_SEC,同时启用代理池轮换 |
| 同一帖子被采了多份 | 文件存储不去重 | 切换--save_data_option sqlite |
| 媒体文件缺失 | 媒体下载默认关闭且串行执行 | 确认ENABLE_GET_MEDIA = True;B站装 ffmpeg 可拿最高画质,未装会自动降级 |
适合谁用,不适合谁用
适合:竞品分析、内容趋势监控、用户评论舆情观察、教学演示——单账号、中小规模、以学习研究为目的的场景。命令行不顺手的话,仓库自带webui/可视化界面,能图形化配置参数、看实时日志和预览数据:
不适合:追求"一天百万条"的极限吞吐(真实浏览器模型决定了它偏稳而非偏快),以及需要商业授权的场景。
⚠️ 合规边界值得先说清楚:项目许可仅限学习研究用途,不得商用或大规模采集,使用时应遵守目标平台的服务条款与 robots 规则——config/下每个配置文件的头部都写明了这条声明。频率上给自己定个规矩:单账号、低并发、白天跑,比事后处理封号成本低得多。
和自研爬虫的取舍:相比自己写 Playwright 爬虫,MediaCrawler 省掉了签名生成、登录态维护和风控对抗这三块最耗时的脏活;相比收费采集服务,它免费且源码全透明,代价是平台接口变动时得你自己跟进更新。
数据落地后的下一步:excel存储直接输出多工作表(内容/评论/创作者)可进 BI;开ENABLE_GET_WORDCLOUD = True能对评论生成词云,停用词在 docs/hit_stopwords.txt 维护;要接 pandas 分析,jsonl 格式是最好喂的。
把签名、风控、登录态交给 MediaCrawler 之后,你的时间可以花在数据本身。想继续深入,docs/ 目录下的数据保存指南、代理使用、CDP 模式使用指南和常见问题,配合前文的设置项说明,基本能覆盖日常会踩的坑。
【免费下载链接】MediaCrawler小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 | 评论爬虫、微博帖子 | 评论爬虫、百度贴吧帖子 | 百度贴吧评论回复爬虫 | 知乎问答文章|评论爬虫项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考