零基础 30 分钟跑通:MediaCrawler 多平台数据采集完整上手指南
【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new
你不需要会逆向、也不需要从零写爬虫,只要照着这篇指南一步步来,用 MediaCrawler 这个免费开源的多平台数据采集工具,最快半小时就能把小红书、抖音、快手、B站、微博上的关键词内容、帖子详情和评论批量抓下来,存成 Excel 能直接打开的表格。全程有扫码登录兜底,代码层面基本不用动脑。
一、先聊聊你的真实需求:手动翻页截图,真的够用吗
假设你正在给公司做竞品调研,想统计某个品类在小红书上的热门内容;或者你在运营自己的账号,想研究同行的爆款选题有什么规律。一开始你可能习惯手动翻几页、截个图、复制进表格,做二三十条还能忍,做到两三百条就崩溃了——翻页翻到手酸,数据还会漏,更别提把评论一起收集下来。
数据这东西,零散着看没意义,成批量拿到手才叫资产。而批量采集正是 MediaCrawler 的主场:一个开源工具,一个项目覆盖五个主流平台,能抓帖子、视频、评论、点赞、转发等完整信息。最关键的是,它用 Playwright 模拟真实浏览器去操作页面,绕过了新手最怕的"逆向加密算法"环节,把门槛从"编程高手"直接拉低到"会用手机扫码"。
二、把项目请回家:四条命令完成环境准备
老规矩,先把项目拿到本地。在你的终端里执行:
git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler-new cd MediaCrawler-new然后建一个独立的虚拟环境。你可以把虚拟环境理解成给这个项目安排的一间独立小房间——里面装的 Python 版本和依赖互不打扰,不会污染你电脑上其他项目。
python -m venv venv # Linux / Mac 激活 source venv/bin/activate # Windows 激活 venv\Scripts\activate接着安装依赖和浏览器驱动,两条命令搞定:
pip install -r requirements.txt playwright install到这里环境就绪了。别小看最后那条playwright install,它是爬虫能"假装成真人浏览器"的关键,漏掉它后面会报各种莫名其妙的错。
三、第一次跑通:改两个配置,搜出第一批小红书数据
现在进入最激动人心的部分——拿到第一批数据。打开config/base_config.py,你只需要关心几个值:
PLATFORM = "xhs" # xhs | dy | ks | bili | wb KEYWORDS = "python,golang" # 想搜什么就写什么,逗号分隔 LOGIN_TYPE = "qrcode" # qrcode | phone | cookie保存后运行:
python main.py --platform xhs --lt qrcode --type search程序会弹出一个真实浏览器窗口并显示二维码,拿出手机小红书 App 扫码确认登录,爬虫就自动开工了。跑完之后打开项目里的data/目录,你会看到按时间命名的 JSON 文件,里面就是带完整字段的帖子数据——标题、链接、点赞数、收藏数、发布时间,全都齐了。
这一趟下来你会发现:所谓"数据采集",在配置层面其实就三步——选平台、填关键词、扫码登录。剩下的事情交给工具。
四、登录不止一种姿势:二维码、手机号、Cookie 怎么选
第一次用扫码,是因为它最省事;但用得久了你会遇到更多场景,登录方式也得跟着切换:
- 二维码登录(qrcode):日常首选,安全又方便,适合第一次上手。
- 手机号登录(phone):支持短信验证码,配合短信转发器可以实现无人值守。
- Cookie 登录(cookie):如果你手里已经有登录态的 Cookie,直接在
COOKIES里填进去,秒进,适合批量跑多个账号的场景。
还有个特别贴心的设计:登录状态会自动缓存到项目的browser_data目录。就像门禁卡被记住了,下次启动不用再扫码,直接延续上次的登录态。这也是为什么很多老手喜欢把它挂上定时任务,长期跑数据。
想切平台也简单,把--platform换成dy、ks、bili、wb就行,其他命令完全一样。
五、从"能搜"到"会挖":按 ID 精爬、爬博主主页、连评论一起抓
关键词搜索只是入门,MediaCrawler 真正顺手的是"精准挖取"。
- 按指定 ID 爬取(detail):你在平台上看到一个感兴趣的帖子或视频,把它的 ID 填进
XHS_SPECIFIED_ID_LIST、DY_SPECIFIED_ID_LIST这类列表,就能单点抓取这条内容,连评论区一起端走。 - 爬博主主页(creator):想研究某个博主的全部作品?把创作者 ID 填进
XHS_CREATOR_ID_LIST,一键拉全量主页数据。 - 连评论一起抓:默认不抓评论,在配置里把
ENABLE_GET_COMMENTS = True打开,评论数据就会一起入库。
再配合CRAWLER_MAX_NOTES_COUNT控制单次爬取条数,你就能把"浅尝辄止"和"深度挖掘"两种模式自由切换。
六、数据存到哪:JSON、CSV、数据库三选一
辛辛苦苦抓下来的数据,得找个好归宿。SAVE_DATA_OPTION给你三个选项:
- json:默认选项,字段结构完整,适合写代码做后续分析。
- csv:Excel 双击就能打开,运营同学最爱,做报表、做透视都方便。
- db:写入关系型数据库(MySQL、PgSQL 等),数据库连接信息在
config/db_config.py里配置,适合数据量大到需要用 SQL 查的场景。
一个直观的类比:JSON 像整箱货物,格式严谨适合机器搬运;CSV 像一张表格纸,人眼看起来最舒服;数据库像大仓库,量大之后只有它能装得下。
七、跑得稳不被封:代理IP池和并发控制的正确打开方式
数据量一旦上来,就该考虑"生存问题"了。同一台机器、同一个 IP 高频请求,很容易被平台的风控盯上。MediaCrawler 内置的代理IP池就是为此准备的:从代理服务商拉一批 IP 存进 Redis,用的时候按需取用、过期自动淘汰。

开启方式在配置里就两行:
ENABLE_IP_PROXY = True IP_PROXY_POOL_COUNT = 5IP 从哪来?项目默认对接了极速 HTTP 这类代理服务商,你需要在它的后台申请提取 key 和加密签名,然后在代理服务商界面选择 IP 时长、协议、地区,生成专属的提取链接:
拿到 key 之后,通过环境变量喂给程序,密钥就不会硬编码在代码里,安全性和可维护性都好很多:
jisu_key = os.getenv("jisu_key", "") jisu_crypto = os.getenv("jisu_crypto", "")与此同时,MAX_CONCURRENCY_NUM控制并发数,HEADLESS控制是否无头运行。给你一个经验值:轻度使用 2~3 个代理够用,中度 5~10 个,重度就上 10 个以上。并发也别贪多,默认 4 就很稳,盲目调高反而容易触发风控。
八、新手最容易踩的四个坑,提前帮你排掉
我见过不少朋友卡在同一个地方,提前说清楚能省下大把时间:
- 扫码一直失败:先检查网络,再清掉
browser_data/目录重新登录,实在不行就换手机号或 Cookie 方式。 - 卡在滑动验证码:把
HEADLESS设为False,让浏览器窗口弹出来,手动拖一次滑块再继续,基本就过了。 - 数据抓不全:检查
CRAWLER_MAX_NOTES_COUNT是不是设得太小,再确认网络是否稳定。 - 跑得太慢:适当提高并发数、开启代理IP池,别在平台流量高峰时段跑。
更多细节在项目的 docs/常见问题.md 里有持续更新,遇到报错先翻它。
九、写在最后:免费的工具,记得用在正道上
回头看,从拿到项目到产出第一份数据,其实就三步:装好环境、配好关键词、扫码开跑。剩下的规模化和稳定性,都是在你跑起来之后按需往上加的东西——这就是一个好的开源工具该有的样子。
最后多叮嘱一句:工具虽然免费,但请把它用在合法的学习和研究上,尊重各平台规则与用户隐私。如果你在使用的过程中想找人交流,也欢迎扫码加入技术交流群,群里会分享平台更新的应对经验和各种实战技巧。
【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考