MediaCrawler 完整指南:一行命令跑通 5 个社交媒体平台数据采集

发布时间:2026/10/26 1:34:26
MediaCrawler 完整指南:一行命令跑通 5 个社交媒体平台数据采集 MediaCrawler 完整指南一行命令跑通 5 个社交媒体平台数据采集【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new做市场调研的人大概都干过这种事打开小红书搜一个关键词翻页、复制标题、粘贴进表格半小时过去攒下的数据还不够画一张图。换成抖音、B站再做一遍工作量直接翻几倍还可能在某次刷新后收到网络异常的提示。MediaCrawler 是一个面向小红书、抖音、快手、B站、微博的开源社交媒体数据采集工具它用自动化浏览器保留你扫码登录后的真实会话再在这个会话里执行页面内的 JS 拿到加密参数把最棘手的逆向部分直接省掉了。免逆向加密Playwright 会话搭桥取数的原理市面上多数爬虫方案的第一道坎是签名参数接口请求里带的 xs、X-Bogus 这类字段是平台用一段混淆过的 JS 算出来的硬啃就要逐行逆向每个平台的算法还都不一样。MediaCrawler 换了个思路。它用 Playwright一个能模拟真实浏览器行为的自动化库打开页面你像普通用户一样扫码登录一次项目会把这次登录产生的 Cookie、本地存储等状态缓存到本地的用户数据目录里。之后每次采集它都用这套缓存好的浏览器上下文发起请求并直接在页面环境里执行平台的 JS 表达式计算加密参数——参数由平台自己的代码算你只需要借用结果不需要复现算法。两个细节体现了这个思路的完整度项目自带一份libs/stealth.min.js作用是抹掉浏览器的自动化指纹特征让请求看起来更像真人操作抖音的 sign 函数单独放在libs/douyin.js里通过 Node.js 环境调用执行这也是为什么跑抖音平台需要本机装 Node.jsv16.8.0 及以上。登录环节同样覆盖了三种方式二维码默认、手机号配合短信转发服务见 docs/手机号登录说明.md、Cookie把浏览器里现成的 Cookie 字符串贴进配置即可。3 步跑通首次采集环境、配置与启动命令第 1 步准备环境。克隆仓库并装好依赖其中playwright install会下载驱动所用的浏览器内核不能漏git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler-new cd MediaCrawler-new python -m venv venv source venv/bin/activate pip install -r requirements.txt playwright install第 2 步改配置。所有可调项集中在 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 # 每个入口最多抓多少条 ENABLE_GET_COMMENTS False # 是否同时抓评论 SAVE_DATA_OPTION json # json / csv / db 三种落盘方式第 3 步启动。平台、登录方式、采集模式都可以用命令行参数覆盖配置文件python main.py --platform xhs --lt qrcode --type search执行后浏览器会自动弹出登录二维码用手机端 App 扫码确认即可采集结果按SAVE_DATA_OPTION落到data/目录json/csv或数据库需在 config/db_config.py 里配好连接。过程中最容易卡住的两个点提前说在前面抖音平台报execjs相关错误基本就是缺 Node.js 环境如果扫码后一直卡住把配置里的HEADLESS改为False让浏览器窗口显示出来手动过一下可能出现的验证码。登录状态缓存在根目录的browser_data/下想换账号登录就删掉这个目录重跑。五大平台能力对照三种采集模式各自支持到什么程度启动命令里的--type决定了采集模式search按关键词搜索、detail按指定 ID 列表抓单条内容ID 列表同样写在配置里按平台分字段、creator抓创作者主页目前仅小红书支持。五个平台的能力矩阵如下打勾的位置就是实际能跑的平台Cookie 登录二维码登录关键词搜索指定 ID 采集创作者主页登录状态缓存代理 IP 池滑块处理小红书✅✅✅✅✅✅✅—抖音✅✅✅✅—✅✅✅快手✅✅✅✅—✅✅—B站✅✅✅✅—✅✅—微博✅✅✅✅—✅✅—几个使用上的实际差别抖音是唯一内置滑块验证码识别的tools/slider_util.py用 OpenCV 做缺口定位tools/easing.py生成拟人滑动轨迹但源码注释里也坦诚提示登录弹窗中途跳出的滑块验证准确率一般建议优先用 Cookie 方式登录抖音B站额外支持按 BV 号批量下载视频配置里把CRAWLER_TYPE设为video_download即可小红书是功能最全的一个搜索还支持排序方式SORT_TYPE如按热度降序。各平台的具体实现都按同一套骨架落在media_platform/对应子目录里字段定义field.py、客户端client.py、登录login.py、核心流程core.py一一对应看一个平台就能推导出其他平台。配置代理 IP 池降低长时间采集的封禁风险单 IP 高频请求是触发风控的最常见原因。项目在 proxy/ 目录下做了一套 IP 代理池开启后它通过代理服务商的 API 拉取一批 IP 存入池子采集请求随机取用、用完即弃池子空了自动补货可选开启有效性校验发一个测试请求失败的 IP 会自动剔除重试。IP 的缓存和过期时间记录在 Redis 里所以启用代理功能需要本机先装好 Redis 并设密码。MediaCrawler 代理 IP 池工作流程图配置侧只需要两步把ENABLE_IP_PROXY置为True再按需调整IP_PROXY_POOL_COUNT池子里的 IP 数量。代理密钥key/crypto建议放环境变量里不要硬编码在代码中。比换 IP 更进一步的还有账号代理池proxy/proxy_account_pool.py它维护一组IP ↔ 手机号一一配对的账号组合轮换使用目的是把请求分散到多个真实账号上适合需要长时间跑量的场景。按模块读懂代码新增一个平台要动哪些文件这套工具的可维护性来自一个约定所有平台共享 base/base_crawler.py 里的抽象基类AbstractCrawler定义浏览器启动、AbstractLogin定义三种登录、AbstractStore定义数据落盘main.py里的CrawlerFactory用一个字典把平台名映射到具体实现类。想理解或扩展一个新平台路径是清晰的在media_platform/下建一个同构的子目录实现client.py封装接口请求、login.py继承AbstractLogin、core.py串联采集流程继承AbstractCrawler在store/下对应目录实现AbstractStore决定数据写 json、csv 还是数据库回main.py的工厂字典里注册一行。工具函数则统一收在 tools/滑块识别、时间处理、通用辅助各管一摊改 bug 时基本不用跨目录翻找。合规使用边界采集前先看这 4 条工具能跑通不等于可以随便跑平台风控和法律法规是两回事都别碰控制频率与规模CRAWLER_MAX_NOTES_COUNT和并发数MAX_CONCURRENCY_NUM留有余量别把账号跑进风控黑名单尊重隐私与条款采集结果可能含用户个人内容仅用于学习和研究目的不传播、不商用账号风险自担登录态属于你自己的账号被限流或封禁的责任不在工具方数据用途合法不用于骚扰、恶意营销或任何侵犯第三方权益的操作。更多配置项说明、运行报错排查和手机号登录的短信转发搭建都在 docs/ 目录里遇到问题先翻一遍再动手。【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询