news 2026/10/26 1:50:08

MediaCrawler 采集教程:小红书抖音B站数据抓取指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MediaCrawler 采集教程:小红书抖音B站数据抓取指南

MediaCrawler 采集教程:小红书抖音B站数据抓取指南

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

MediaCrawler 是基于 Python 的开源数据采集框架,覆盖小红书、抖音、快手、B站、微博,抓取帖子、评论与点赞转发数据。它用 Playwright 驱动浏览器完成登录,免去加密参数逆向,适合做内容分析的人使用。

功能覆盖一览:五个平台支持哪些爬取模式

平台二维码登录Cookie 登录关键词搜索指定ID爬取创作者主页IP 代理池滑块验证码
小红书✅✅✅✅✅✅✕
抖音✅✅✅✅✕✅✅
快手✅✅✅✅✕✅✕
B站✅✅✅✅✕✅✕
微博✅✅✅✅✕✅✕

五个平台都支持登录状态缓存(缓存后重复运行不用再次扫码)和 csv、json、数据库三种数据保存。指定 ID 爬取时,各平台在 config/base_config.py 中有对应的 ID 列表变量,如XHS_SPECIFIED_ID_LIST、BILI_SPECIFIED_ID_LIST。

环境准备与首次运行:从 clone 到第一批数据

git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler-new

克隆完成后,在项目目录里创建并激活虚拟环境,安装 Python 依赖与浏览器内核:

python -m venv venv && source venv/bin/activate pip install -r requirements.txt && playwright install

Windows 下激活命令换成venv\Scripts\activate。然后执行搜索模式爬取:

python main.py --platform xhs --lt qrcode --type search

这条命令会启动无头浏览器,用小红书 App 扫码登录后自动开始抓取,结果落到data/目录。如果后续要爬抖音,先装 Node.js v16.8.0,抖音签名依赖本地 JS 执行。

⚙️ 关键配置项:爬取类型、保存格式与无头模式

三个最影响使用体验的配置:

  • CRAWLER_TYPE:决定爬取模式。"search"按KEYWORDS关键词搜索;"detail"按配置里的 ID 列表抓指定帖子;"creator"抓创作者主页(仅小红书支持)。
  • SAVE_DATA_OPTION:"csv"、"json"直接写入data/目录;"db"写入 MySQL/PgSQL,连接信息在 config/db_config.py 配置,也支持 sqlite。
  • HEADLESS:True时无头运行;设为False会弹出可见浏览器,小红书扫码不通过或出现滑块时可以人工介入。

另外ENABLE_GET_COMMENTS默认False,需要评论数据时改为True;CRAWLER_MAX_NOTES_COUNT与MAX_CONCURRENCY_NUM分别控制单次采集上限和并发数。

🎯 实战场景:按热度抓取小红书"健身教程"笔记

目标:拿一批按热度排序的健身教程笔记,连同评论内容,用于话题趋势分析。

配置改动(均在config/base_config.py):

  • PLATFORM = "xhs"
  • KEYWORDS = "健身教程"
  • SORT_TYPE = "popularity_descending"(按热度排序,排序选项目前仅小红书支持)
  • ENABLE_GET_COMMENTS = True
  • CRAWLER_MAX_NOTES_COUNT = 100

执行与首次运行相同的 search 命令。产出物是data/下的数据文件(格式跟随SAVE_DATA_OPTION),包含笔记正文、点赞收藏等互动计数,开启评论后还有逐条评论。后续可以直接用 pandas 读取,做词频统计或互动趋势图。

🌐 代理 IP 池配置:Redis 缓存与密钥设置

大规模采集时 IP 容易被风控,项目内置了代理 IP 池:启动时判断是否启用代理,从服务商拉取可用 IP 存入 Redis 并记录过期时间,再由爬虫从池中取用。整体流程见下图。

MediaCrawler 代理 IP 池获取与轮换流程图

配置步骤:

  1. 本地安装 Redis 并设置密码,连接信息写在config/db_config.py(REDIS_DB_HOST、REDIS_DB_PWD)。
  2. 在代理服务商后台生成 API 链接,取其中的key和crypto两个参数。

  1. 把两个参数写入环境变量,避免在代码里硬编码明文密钥。

  1. 修改配置启用代理:ENABLE_IP_PROXY = True,IP_PROXY_POOL_COUNT控制池内 IP 数量。

目录结构:平台实现与存储模块怎么组织

入口是main.py,按--platform参数分发到media_platform/下小红书、抖音、快手、B站、微博各自的 crawler 实现,它们都继承base/base_crawler.py的抽象基类。store/里每个平台对应一套存储实现(csv/json/db 三选一),proxy/负责代理 IP 池的拉取与缓存,tools/放滑块处理、滑动轨迹模拟等函数,libs/中的douyin.js是抖音签名脚本、stealth.min.js用于去除浏览器自动化特征。

🛠️ 首次运行报错排查:超时、缺 Node.js 与登录失效

  • 现象:爬抖音报execjs._exceptions.ProgramError: SyntaxError: 缺少 ';'。原因:本机缺少 Node.js 运行时。解法:安装 Node.js v16.8.0 后重试。
  • 现象:playwright TimeoutError: Timeout 30000ms exceeded。原因:网络无法访问目标站点,通常是网络环境没配好。解法:检查网络与代理设置后再重试。
  • 现象:一开始能正常爬取,过几天登录态失效、抓不到数据。原因:账号触发了平台风控。解法:删除根目录browser_data/下的缓存换账号重新登录,同时调低采集上限和并发,避免大规模抓取。
  • 现象:小红书二维码扫码一直不通过或弹出滑块。原因:无头浏览器行为被平台识别。解法:把HEADLESS设为False,在可见浏览器中手动完成验证。

更多问题可查 docs/常见问题.md。

建议先用默认配置跑通一次小红书 search 模式,确认data/目录生成了数据文件;流程验证后再按需调整关键词、开启评论采集,或接入代理池与数据库存储。项目仅限学习研究用途,采集规模请遵守各平台规则。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/26 1:50:04

10分钟拥有自己的桌面宠物:DyberPet 桌宠框架新手快速上手

10分钟拥有自己的桌面宠物:DyberPet 桌宠框架新手快速上手 【免费下载链接】DyberPet Desktop Cyber Pet Framework based on PySide6 项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet 桌面只有静态壁纸是不是有点孤单?DyberPet&…

作者头像 李华
网站建设 2026/10/26 1:49:10

Windows 11 以太网适配器最佳设置:网络优化指南

Windows 11 的默认网络配置足够上网,但想榨干有线网络连接的潜力,光插上网线可不够。所以我们想,不如写一篇指南,聊聊 Windows 11 系统上新手和进阶用户都能做的关键设置。无论你是遇到速度慢、随机断连,还是单纯想把网络性能拉满,优化以太网适配器设置都能带来明显差别。…

作者头像 李华
网站建设 2026/10/26 1:49:01

5个信号识别垃圾账号:anti-slop用户检查如何过滤AI slop贡献者

【免费下载链接】anti-slop A GitHub action that detects and automatically closes low-quality and AI slop PRs. 项目地址: https://gitcode.com/gh_mirrors/an/anti-slop 点击查看 免费下载 开源维护者正被大量低质量 PR 淹没,其中不少是 AI 自动生…

作者头像 李华