十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MediaCrawler爬虫框架实战手册:5步跑通小红书、抖音、B站、快手、微博的数据采集

MediaCrawler爬虫框架实战手册:5步跑通小红书、抖音、B站、快手、微博的数据采集 MediaCrawler爬虫框架实战手册5步跑通小红书、抖音、B站、快手、微博的数据采集【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new做内容运营的林姐凌晨一点还在对着浏览器一页页翻评论复制、粘贴、整理进Excel——这是她本周第三次为了一份竞品调研加班到深夜。如果你也曾为采集社交媒体数据这件事熬过夜那这篇关于MediaCrawler爬虫框架的文章就是为你准备的。MediaCrawler 是一套开源的社交媒体数据采集工具用 Python 写成覆盖小红书、抖音、快手、B站、微博五大平台能抓取视频、图片、评论、点赞、转发等数据。它最大的价值不是能爬而是让一个非逆向高手也能在几小时内完成从配置到出数据的完整流程。一、先讲清楚它凭什么好上手不撬锁而是带钥匙进门市面上的爬虫大多走逆向路线——把平台前端的加密 JS 抠出来在本地复现一遍。这条路又累又脆平台一改版加密算法一换代码就废了。MediaCrawler 换了个思路。它基于 Playwright 搭桥先让你像正常用户一样扫码登录把登录成功后的浏览器上下文保存下来之后的每一次请求都借这个已登录的身份去执行 JS 表达式、拿到加密参数。打个比方别人在撬锁它只是礼貌地敲门——钥匙是你自己手机扫出来的门是平台自己开的。这就是它代码里libs/stealth.min.js去除浏览器自动化特征和SAVE_LOGIN_STATE保存登录状态存在的意义。把最难的逆向环节绕开难度自然降了一个量级。二、这套爬虫框架最值钱的其实是这两件事1. 一套代码五个平台打开media_platform/目录你会发现五个平台的实现结构几乎一样client.py管 API 请求、core.py管爬取逻辑、login.py管登录、field.py管字段定义。它们全部继承自base/base_crawler.py里的抽象基类再通过main.py里的工厂类按平台名一键实例化。这意味着什么你只需要改一个命令行参数就能在五个平台之间无缝切换。学透一个平台等于会了五个。2. 内置代理IP池专治爬着爬着就封号大批量采集最怕两件事IP 被封、账号被风控。MediaCrawler 的proxy/目录就是为这个问题设计的。它内置了从代理服务商拉取 IP、存入 Redis、维护 IP 池、按需取用的一整条链路MediaCrawler爬虫框架的代理IP池管理流程图代理IP池的完整工作链路启动时判断是否开启代理拉取、缓存、池化、分发每一步都有据可查。具体到配置代理密钥通过环境变量管理不会硬编码进代码里——你在proxy/proxy_ip_provider.py里看到的就是这样代理密钥用os.getenv读取既安全又方便换服务商。而 IP 的提取、数量、时长、协议类型都可以在代理服务商的后台按需生成再填进配置在服务商后台生成带密钥的 API 链接拿到的 IP 会自动进入 MediaCrawler 的代理池。如果你只是小规模采集把ENABLE_IP_PROXY保持为False也能正常跑一旦要批量上量再打开它。三、实战演练从零开始抓一轮露营相关的小红书笔记空谈不如动手我们完整走一遍流程。第1步准备环境约5分钟git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler-new cd MediaCrawler-new python -m venv venv source venv/bin/activate # Windows 下用 venv\Scripts\activate pip3 install -r requirements.txt playwright install小提示如果你计划爬抖音记得先装 Node.jsv16.8.0 左右抖音的签名计算依赖它。具体见docs/常见问题.md。第2步改两行配置打开config/base_config.py这是整个爬虫框架的总控台PLATFORM xhs # xhs | dy | ks | bili | wb KEYWORDS 露营 # 关键词多个用英文逗号分隔 LOGIN_TYPE qrcode # qrcode | phone | cookie SAVE_DATA_OPTION json # csv | db | jsonCRAWLER_MAX_NOTES_COUNT 20控制这次一共抓多少条MAX_CONCURRENCY_NUM 4控制并发数先保持默认即可。第3步扫码登录一行命令开跑python main.py --platform xhs --lt qrcode --type search浏览器会自动弹出用小红书 App 扫码登录。登录态会被缓存到browser_data/目录下次启动直接复用不用再扫。第4步数据落地程序跑完后data/目录下会生成按平台命名的 JSON/CSV 文件。如果想把数据入库把SAVE_DATA_OPTION改成db再到config/db_config.py填好 MySQL 或 PostgreSQL 连接信息即可项目自带 ORM建表不用你操心。到这里第一批数据已经到手了。整个过程你只写了两行配置、跑了一条命令。四、进阶几个多数人不知道的隐藏细节评论区也能抓默认不抓评论把ENABLE_GET_COMMENTS改成True笔记连同评论一起落地。做舆情分析的这一步基本是必开项。指定内容爬取不想用关键词直接把笔记/视频 ID 填进各平台的*_SPECIFIED_ID_LIST再用--type detail跑就能精确抓某几条内容。B 站还单独支持video_download模式可以真正把视频文件下载下来。无头模式省资源HEADLESS True时不弹浏览器窗口适合挂服务器跑遇到小红书滑块验证过不去时把它改成False手动过一下验证码再关。创作者主页采集小红书支持填XHS_CREATOR_ID_LIST指定博主用--type creator抓某个账号的全部笔记这是调研竞品账号的利器。抖音的滑块验证tools/slider_util.py里模拟了人类拖动滑块的轨迹曲线easing.py这条曲线是模拟人手的加速-减速-回弹节奏写的不是简单直线细节拉满。五、避坑问答踩过的坑替你提前填平Q跑了一会儿突然没数据了是代码坏了吗A大概率是账号触发了平台风控。别头铁降低并发、放慢节奏、开代理池且务必控制总量别把平台惹毛了。Q想换一个登录账号怎么办A删掉项目根目录下的browser_data/文件夹再重跑即可。Q报错Timeout 30000ms exceededA先检查网络环境——这类超时八成是没开代理、网络不通畅导致的跟代码关系不大。Qexecjs报语法错误A抖音场景专属问题装好 Node.js 就解决。更多历史问题和排查思路见docs/常见问题.md想深入理解模块划分可以翻docs/项目代码结构.md手机号短信登录的完整配置含短信转发器 内网穿透在docs/手机号登录说明.md。六、写在最后MediaCrawler 不复杂一个配置文件、一条命令五个平台的数据就能源源不断落到你手里。它把逆向的门槛砍掉把代理池、登录缓存、滑块验证这些脏活累活都封装好了剩下的就是你去想清楚——拿到数据之后要解决什么问题。如果你想交流踩坑经验、第一时间获取平台更新应对方案欢迎扫码进群群里都是真在用的人最后必须提醒一句数据采集有边界。请仅将本项目用于学习与研究遵守相关法律法规和各平台的服务条款尊重内容创作者与用户的隐私。工具本身没有立场怎么用取决于你。下一步行动克隆项目 → 装依赖 → 改关键词 → 跑通第一条数据。然后去 star 一下这个仓库让更多需要它的人能找到它。【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表