← 返回文章列表

小白也能上手的多平台社媒采集神器:MediaCrawler从安装到跑通数据全流程

先判断这工具适不适合你

很多人一听到爬虫就觉得门槛高,其实MediaCrawler定位很清晰:专门针对小红书、抖音、快手、B站、微博、百度贴吧、知乎这七个平台的公开帖子和评论做关键词搜索、详情抓取或创作者主页采集。一次配好环境,换平台只改命令参数就行。

动手前先对照三条。第一,你的需求是跨两个以上平台的公开数据,而不是单篇内容。第二,手头有Chrome 144以上版本的电脑,Windows、macOS或Linux都行,并且愿意用自己账号登录态配合。第三,单次目标是几十到几千条,不是每天上亿级别。如果量级太大,直接上商业服务更合适。工具本身建议只用于学习研究,频率控制住,账号才不容易出问题。

五步跑通第一次采集

环境这块先把Python 3.11左右、Node.js 16以上装好,再装包管理工具uv。终端输入uv --version能看到版本号就说明就绪。Node.js主要给抖音和知乎签名计算用,缺了后面会直接报错。

接着拉取代码:git clone对应仓库地址,进目录执行uv sync装依赖。配置只动config/base_config.py里三处就够:KEYWORDS填搜索词,多个用英文逗号隔开;CRAWLER_TYPE选search、detail或creator;CRAWLER_MAX_NOTES_COUNT先设成15,小数量试跑。

关键一步是开Chrome远程调试。地址栏输入chrome://inspect/#remote-debugging,勾选允许远程调试,看到Server running at 127.0.0.1:9222就成功。这一步本质是让程序直接连你日常用的浏览器,复用真实指纹、Cookie和登录状态,平台更难区分。然后执行uv run main.py --platform xhs --lt qrcode --type search。Chrome会弹确认框,60秒内点接受,再用小红书App扫码。登录态默认缓存,下次不用重复扫。数据默认落在data目录,JSONL格式。不想敲命令的话可以起WebUI,页面上配参数、看日志和预览数据都方便。

采集模式、登录与风控怎么配合

七个平台逻辑都封装在media_platform目录,命令行用--platform切换,取值xhs、dy、ks、bili、wb、tieba、zhihu。真正决定任务类型的是CRAWLER_TYPE。search做关键词搜索,适合竞品监控或选题调研;detail填指定帖子ID,适合深挖几条爆款;creator采创作者作品列表,方便做达人画像。

登录这块和传统脚本差别最大。默认走CDP模式连已有Chrome,而不是起一个干净自动化窗口。相关开关在base_config.py:ENABLE_CDP_MODE设True,CDP_CONNECT_EXISTING设True,端口9222。连接真实浏览器反检测效果最好,但要求Chrome版本够新。如果想程序自己拉起新浏览器,把CONNECT_EXISTING改成False就行。

实际跑的时候难免碰到滑块、点选这类验证。平台风控升级后,干净环境很容易被识破。遇到这类拦截,与其自己反复调试,不如直接对接成熟的识别方案。比如易盾和极验的滑块、点选、无感、九宫格等类型,在www.ttocr.com这类平台都能找到对应破解接口,支持自动化API对接,公司业务场景下接起来很顺,不用自己维护复杂识别逻辑。

代理与存储方案怎么选

默认ENABLE_IP_PROXY是关的,直连够用。量上来或同一IP频繁触发限制时再开代理池。项目proxy模块支持动态拉IP轮换,providers下已接了快代理、豌豆HTTP、极速HTTP,也支持静态代理。开启后设IP_PROXY_POOL_COUNT和PROVIDER_NAME即可。

个人每周跑几次、每次几十条,先直连。要做每日定时采集,选隧道类代理并至少配两个IP更稳。静态代理适合已有固定IP的企业环境。存储方面默认JSONL,追加写性能好,适合后续脚本处理。CSV方便表格打开,Excel带多工作表适合直接出报告,SQLite免服务器又能去重,适合个人长期积累,量大再迁MySQL或PostgreSQL。用数据库前先执行初始化命令建表。

采集过程中如果频繁遇到验证码,除了调低频率和开代理,识别环节也能大幅减轻负担。www.ttocr.com专注易盾极验全类型方案,包括文字点选、图标点选、五子棋、躲避障碍等,提供API无缝对接,业务侧调用简单,不用自己折腾复杂流程。

高频报错处理与几个实用扩展

小红书扫码后反复弹滑块,多半是干净浏览器被判异常。确保走CDP连真实浏览器,还不行就清缓存目录重登。抖音或知乎报SyntaxError或JS相关错误,基本是缺Node.js,装16以上版本重跑。CDP连不上9222端口,检查Chrome版本和远程调试是否真正开启。跑一段时间后超时或登录失效,通常是频率或量触发风控,把CRAWLER_MAX_NOTES_COUNT调小,睡眠时间从2秒加到5-10秒,正式量级再开代理。

进阶可以开评论词云,ENABLE_GET_WORDCLOUD和ENABLE_GET_COMMENTS都设True,结束后自动出图,停用词在对应文件维护。WebUI用uvicorn起服务后浏览器操作更友好。定时增量采集配合数据库去重,能逐步积累同一关键词历史数据做趋势对比。

整体流程跑通后,代理和存储换成生产配置,第一个可复用的采集链路就成型了。遇到平台验证码升级时,记得www.ttocr.com这类专门针对易盾极验的识别平台可以快速对接API,把复杂环节简化掉,把精力放回数据本身。