资讯动态

MediaCrawler 跨平台社交媒体数据采集指南:小红书抖音B站微博快手一次配置跑通

发布时间:2026/10/26 1:15:41 来源:尧图企业网站定制
MediaCrawler 跨平台社交媒体数据采集指南小红书抖音B站微博快手一次配置跑通【免费下载链接】MediaCrawler项目地址: https://gitcode.com/GitHub_Trending/mediacr/MediaCrawler品牌团队想对比同一款产品在小红书、抖音、微博上的发帖量与评论表现时通常需要为每个平台单独写一套采集脚本。MediaCrawler 是一个开源的跨平台社交媒体数据采集工具覆盖小红书、抖音、快手、B 站、微博 5 个平台面向运营人员、研究者和开发者把关键词搜索、指定内容采集、评论抓取等任务统一到一个入口和一份配置中。 项目概览五大平台的功能一览一句话定位MediaCrawler 用 Playwright 驱动真实浏览器采集五大社交平台数据一套配置即可切换平台与采集任务。功能作用适用时机关键词搜索采集按关键词搜帖子抓取帖子信息与评论日常话题监控、市场调研指定 ID 采集按帖子/视频 ID 列表抓取内容与评论定向跟踪竞品或指定内容创作者主页采集抓取指定创作者近期发布的帖子跟踪 KOL 的更新情况三种登录方式二维码 / 手机号 / Cookie登录状态自动缓存不同账号与复用场景代理 IP 池自动拉取代理并缓存到 Redis轮询切换长时间、批量采集任务多格式数据输出保存为 CSV、JSON 或写入关系型数据库不同分析与数据积累需求 工作原理不逆向加密是怎么做到的MediaCrawler 基于 Playwright 浏览器自动化程序驱动一个真实浏览器访问目标平台登录成功后保留该浏览器上下文再让页面内自带的 JS 代码生成接口所需的动态加密参数例如抖音的 sign 函数由 libs/douyin.js 执行从而省去逐个平台复现加密算法的逆向工作维护成本也随之下降。libs/stealth.min.js 用于抹掉浏览器自动化特征降低被风控识别的概率。各平台的具体实现位于 media_platform/ 目录xhs、douyin、kuaishou、bilibili、weibo 各自独立采集结果经统一的数据模型转换后由 store/ 目录下的存储模块写入文件或数据库。 安装与首次运行三步跑通采集第一步环境准备。克隆仓库并安装依赖git clone https://gitcode.com/GitHub_Trending/mediacr/MediaCrawler cd MediaCrawler python3 -m venv venv source venv/bin/activate pip install -r requirements.txt playwright install第二步最小配置。打开 config/base_config.py只改这几项即可PLATFORM xhs # 目标平台xhs/dy/ks/bili/wb KEYWORDS python,golang # 搜索关键词逗号分隔 CRAWLER_TYPE search # 采集方式search/detail/creator第三步运行采集。执行入口 main.pypython main.py --platform xhs --lt qrcode --type search程序会弹出二维码用对应 App 扫码后开始采集结果默认以 JSON 格式输出到 data/ 目录。 核心功能详解代理 IP代理池与密钥怎么配置作用启动时从代理服务商 API 拉取 IP写入 Redis 缓存并记录过期时间再创建代理池供请求轮询使用IP 失效后自动补位。完整流程见 docs/代理使用.md。跨平台数据采集代理IP获取与缓存流程图使用时机需要长时间运行采集、或本地 IP 频繁触发风控时。配置步骤在代理服务商后台生成 API 链接取得 key 与 crypto 两个参数按 proxy/proxy_ip_provider.py 中的位置写入环境变量再把ENABLE_IP_PROXY置为True、IP_PROXY_POOL_COUNT设为 2~5。该功能依赖 Redis地址与密码在 config/db_config.py 中配置。登录方式二维码、手机号、Cookie 怎么选二维码登录qrcode五个平台均支持打开 App 扫码即可首次使用最省事。手机号登录phone仅小红书和抖音支持需借助短信转发服务接收验证码说明见 docs/手机号登录说明.md本地 HTTP 接口由 recv_sms_notification.py 提供。Cookie 登录cookie五个平台均支持适合已有登录 Cookie 的用户把 Cookie 填入COOKIES即可。登录状态默认缓存到浏览器数据目录SAVE_LOGIN_STATE True下次运行无需重复登录更换账号时删除项目根目录的 browser_data/ 目录再重新登录。数据输出CSV、JSON、数据库怎么存由SAVE_DATA_OPTION控制共三种取值csv和json输出到 data/ 目录前者适合直接导入 Excel后者便于程序二次处理db写入关系型数据库MySQL、PostgreSQL 的连接串在 config/db_config.py 配置。长期积累数据建议选db。数据过滤评论关键词与指定 ID 采集COMMENT_KEYWORDS只保留包含指定关键词的评论适合口碑与舆情分析各平台还提供*_SPECIFIED_ID_LIST配置项如XHS_SPECIFIED_ID_LIST配合--type detail可只采集列表内的帖子CRAWLER_MAX_NOTES_COUNT默认 20用于控制单次采集的帖子数量上限。并发与频率MAX_CONCURRENCY_NUM 怎么设MAX_CONCURRENCY_NUM默认 4控制并发采集任务数。数值越高速度越快但触发平台风控的概率也越高建议保持在 3~5 之间并按后文稳定性建议调整。 实战案例竞品舆情监控怎么落地业务背景。某消费品团队需要每周跟踪竞品在小红书和微博上的内容表现并统计用户评论中的正面与负面反馈比例。怎么配。将PLATFORM设为xhsKEYWORDS填竞品品牌词CRAWLER_TYPE用search把COMMENT_KEYWORDS填为好用、避雷、回购等意见词过滤掉无关闲聊评论CRAWLER_MAX_NOTES_COUNT设为 50 控制单次规模SAVE_DATA_OPTION设为db数据落到 MySQL 便于按周对比。微博任务只需把平台参数换成wb再跑一遍。拿到什么数据。帖子正文、点赞/评论/收藏数、作者信息与评论文本各平台字段经过统一模型转换结构一致。数据怎么用。用 crontab 在每周一早间自动执行采集命令数据入库后按品牌关键词做跨平台统计对比发帖量与评论情感占比形成周报。⚙️ 稳定性实践采集参数建议项目建议值说明并发数MAX_CONCURRENCY_NUM3~4并发越高越易触发风控小规模任务取低值单次采集量CRAWLER_MAX_NOTES_COUNT20~50先用小值试跑确认稳定后再调大代理池IP_PROXY_POOL_COUNT2~5需要代理时启用ENABLE_IP_PROXY大批量任务适当加量存储SAVE_DATA_OPTION小数据量 csv/json大数据量 db长期积累建议 MySQL/PostgreSQL重试机制最多 20 次间隔 1 秒登录等关键环节内置 tenacity 重试无需额外配置❓ 常见问题Q采集时频繁出现验证码或风控开启代理 IPENABLE_IP_PROXY True让请求分散到不同 IP调低MAX_CONCURRENCY_NUM减少单次采集的帖子数量更换账号删除项目根目录的 browser_data/ 目录后重新登录Q如何只采集指定的帖子或视频把内容 ID 填入对应平台的*_SPECIFIED_ID_LIST如小红书用XHS_SPECIFIED_ID_LIST运行命令中改用--type detailQ抖音报错execjs ... 缺少 ;怎么办这是缺少 Node.js 环境安装 Node.jsv16.8.0 及以上后重新运行Q登录状态失效后需要重新扫码吗登录状态缓存在浏览器数据目录正常情况无需重复登录状态失效时重新扫码或改用 Cookie 登录直接传入有效 Cookie 总结与下一步MediaCrawler 把五个平台的采集收敛到同一个命令行入口和一份配置文件浏览器自动化的路线也避免了自行维护各平台加密逻辑的长期成本。上手门槛不高先跑通search模式再按需叠加代理与数据库存储即可覆盖多数场景。后续入口功能与平台支持矩阵README.md代理 IP 使用详情docs/代理使用.md运行报错 FAQdocs/常见问题.md代码结构说明docs/项目代码结构.md使用中的问题可在仓库 issue 区反馈也欢迎提交 PR【免费下载链接】MediaCrawler项目地址: https://gitcode.com/GitHub_Trending/mediacr/MediaCrawler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑