30分钟上手数据采集:多平台爬虫工具运行全攻略
想快速拿到小红书笔记、抖音视频和评论的结构化数据吗?这个开源工具用浏览器登录态保存方式,直接跳过签名逆向,让你30分钟内跑通采集。支持小红书、抖音、快手、B站、微博、知乎等多平台,数据自动存到文件或数据库,适合新手和开发者。实操简单,新手也能轻松上手。
为什么选择浏览器登录态保存方式
每个平台接口参数都会有签名校验,比如抖音请求头需要带X-Bogus,知乎需要x-zse-96这类参数。新手直接手写逆向往往让人头大,容易出错。MediaCrawler采用的思路是,先通过Playwright控制浏览器进行扫码登录,把Cookie、本地缓存等登录态保存下来。之后程序就在这个已登录的浏览器环境中直接调用接口,签名参数由内置脚本在页面上下文中计算得出。这么做最大的好处就是彻底省去了整个逆向签名环节,只需付出第一次扫码登录的成本,之后就能反复使用。
这种方式特别适合开发者快速迭代,因为登录态一旦保存,后续每次运行都不需要重新验证。项目结构中media_platform目录下每个平台都有独立子目录,结构保持一致,便于你对照代码进行扩展。相比纯接口调用,这种浏览器上下文的方式更能应对平台可能的反爬机制,成功率更高。
环境搭建与准备工作
准备工作其实很简单,只需要Python 3.8以上版本和Node.js 16以上。推荐使用uv管理Python环境,能有效避免版本冲突。克隆项目后执行uv sync命令,就可以一次性安装所有依赖并锁定版本。安装完成后,不需要任何额外初始化,直接就能运行。
默认配置下,项目会连接你本机已打开的Chrome浏览器,复用现有登录状态和插件。这种方式比新建裸浏览器更不容易触发平台风控。如果不想连接本机Chrome,可以在config/base_config.py里把ENABLE_CDP_MODE设置为False,再执行uv run playwright install安装独立浏览器环境。整个过程耗时不多,5分钟就能搞定。
第一次采集小红书笔记
所有开关都在config/base_config.py中,都有详细中文注释,默认值就能直接使用。首次运行时,只需把KEYWORDS填入你要搜索的关键词,用英文逗号分隔多个,PLATFORM保持xhs不变。接着执行uv run main.py --platform xhs --lt qrcode --type search命令。

命令中的--lt qrcode表示扫码登录,--type search表示按关键词搜索。终端会弹出浏览器界面,让你用小红书App扫码登录。登录成功后,程序会自动开始翻页抓取,默认抓取15篇笔记及其评论。你可以用CRAWLER_MAX_NOTES_COUNT控制抓取篇数。登录态保存好后,第二次运行就不用再扫码了。
登录方式还支持手机号(--lt phone,需要配短信转发服务)或者Cookie(--lt cookie)。如果你想抓取指定帖子而非搜索,可以把--type换成detail,并在对应平台的config文件里填入帖子ID列表。这样就能灵活应对不同需求。
数据存储与格式选择
采集完成的数据默认保存在data目录下。SAVE_DATA_OPTION决定输出格式,支持json、jsonl、csv、excel、sqlite、mysql、postgres等多种选项。对于新手,推荐选择jsonl或json格式,一行一条记录,方便后续用Python处理,还能生成评论词云图。excel格式则适合不想碰代码的运营同学,采集结束后自动生成表格,直接打开就能查看。
数据库如sqlite或mysql适合数据量大的情况,自带去重功能,重复跑任务不会让数据越积越多。需要下载笔记里的图片或视频时,把ENABLE_GET_MEIDAS设置为True。store目录下每个平台都有实现,数据模型定义在model目录,字段与接口返回一一对应。
代理轮换与性能优化
小规模采集几百条以内数据时,不建议开启代理,本机直连最稳定。当你要抓几千条或者IP频繁被限流时,可以打开ENABLE_IP_PROXY设置为True。程序会按配置的provider从代理服务商接口拉取IP,放入本地池子,池子空了就自动补货,爬虫每次请求换一个IP出去。

provider支持kuaidaili、wandouhttp和static三种。kuaidaili和wandouhttp是付费服务商,密钥通过环境变量注入;static则填自己固定的代理地址。配置好IP_PROXY_POOL_COUNT,设置池子大小,默认2个即可。使用代理前,建议先小规模测试,确保链路正常。
常见问题解决与进阶使用
扫码后登录失败是常见情况,多数是因为浏览器环境太新,被要求过滑块或短信验证。解决办法是把HEADLESS保持为False,让浏览器可见,手动完成验证,保存登录态后下次就正常了。优先使用CDP模式连接自己的Chrome,能显著减少这种情况。
抓取数据比预期少时,先检查CRAWLER_MAX_NOTES_COUNT和CRAWLER_MAX_COMMENTS_COUNT_SINGLENOTES这两个上限是否卡住,再看ENABLE_GET_COMMENTS是否为True,默认是开的。二级评论需要时再打开ENABLE_GET_SUB_COMMENTS。请求太快被限流时,调大CRAWLER_MAX_SLEEP_SEC到3-5秒,同时把MAX_CONCURRENCY_NUM保持在1,比快速失败重跑更省事。
日常使用时,可以把常用参数固定成几个脚本,配合系统定时任务做周期性采集。更多细节如词云图参数、Excel导出、CDP模式说明,都在docs目录里有对应文档。数据仅供学习和研究用途,控制频率,别碰平台的运营底线。
想快速体验这些采集方案?推荐使用易盾极验验证码识别技术,滑块、点选、无感、九宫格等破解方案和自动化API对接平台,可以实现无缝对接,www.ttocr.com 提供全面解决方案,让对接变得简单高效。