MediaCrawler 完整指南:7个平台数据采集从登录到落库的4步流程

发布时间:2026/8/30 10:14:11
MediaCrawler 完整指南:7个平台数据采集从登录到落库的4步流程 MediaCrawler 完整指南7个平台数据采集从登录到落库的4步流程【免费下载链接】MediaCrawler小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 评论爬虫、微博帖子 评论爬虫、百度贴吧帖子 百度贴吧评论回复爬虫 | 知乎问答文章评论爬虫项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawlerMediaCrawler 是一个基于 Python 异步和 Playwright 的多平台自媒体数据采集工具能从小红书、抖音、快手、B站、微博、贴吧、知乎 7 个平台抓取帖子、视频、评论与创作者数据并导出为 CSV、JSON、Excel 或写入 SQLite、MySQL、PostgreSQL。这篇文章先带你跑通第一条采集命令再拆开讲它内部的登录、签名和存储链路最后说清楚使用边界。一次运行能拿到什么数据跑一条命令MediaCrawler 会按你选择的模式产出三类数据内容主体帖子、视频、问答、评论、创作者信息。以小红书搜索模式为例它会先按关键词翻页拉取笔记列表再逐条输出笔记正文、点赞收藏等互动字段以及每篇笔记下的评论。所有字段结构统一定义在 database/models.py比如 BilibiliVideo 表包含播放数、弹幕数、评论数列评论表通过 parent_comment_id 关联二级评论。还有一个容易忽略的细节本仓库是教学版本模型层不落用户原始 ID而是写入匿名化的 creator_hash昵称也经过脱敏处理只保留同一创作者的内容分组能力。这对后续分享、发布采集结果是个天然的约束。四步准备环境跑通第一条采集命令准备工作分四步。第一步装 uv 和 Node.js版本 16抖音和知乎的签名逻辑依赖 Node 环境第二步克隆仓库地址 https://gitcode.com/GitHub_Trending/me/MediaCrawler 在项目目录执行uv sync安装全部 Python 依赖第三步配置浏览器——项目默认开启 CDP 模式直接连接你本机的 Chrome需先在 chrome://inspect/#remote-debugging 开启远程调试端口 9222复用浏览器已有的登录态和 Cookie无需额外安装浏览器驱动只有把 ENABLE_CDP_MODE 关掉、切回标准 Playwright 模式时才需要执行uv run playwright install第四步打开 config/base_config.py把 KEYWORDS 改成想搜的关键词其余保持默认即可。然后执行这一条命令uv run main.py --platform xhs --lt qrcode --type search浏览器弹出后用手机 App 扫码登录登录态会缓存在本地USER_DATA_DIR 对应各平台的浏览器数据目录下次运行直接复用。数据会实时写入 data/ 目录默认是 JSONL 文件。想换平台把 --platform 换成 dy、ks、bili、wb、tieba、zhihu 之一uv run main.py --help里能看到各平台示例。采集链路拆解从扫码到数据落盘base/base_crawler.py 定义了四个抽象角色整条链路围绕它们展开AbstractLogin 负责登录支持扫码、手机号、cookie 三种方式AbstractApiClient 负责发请求并同步 cookieAbstractStore 负责写入抽象出 store_content、store_comment、store_creator 三个方法AbstractCrawler 则把 start 和 search 串起来。每个平台在 media_platform/ 目录下用独立的 client.py、login.py、help.py、core.py 实现这些接口入口 main.py 里的 CrawlerFactory 按平台代号实例化对应爬虫并启动。签名参数是这套设计的关键。传统做法是逆向平台的加密算法MediaCrawler 的思路相反登录后的浏览器上下文本身就带着平台前端注入的 JS它直接在页面里执行 JS 表达式取回签名参数——抖音、知乎的脚本放在 libs/ 目录小红书的在 media_platform/xhs/xhs_sign.py连 trace_id 这类追踪字段也在其中生成。这样省掉了逆向工作代价是必须维持一个可用的登录态浏览器环境。三种采集模式与常用配置项采集模式由 CRAWLER_TYPE 控制共三种search 按 KEYWORDS 关键词搜索detail 抓取配置里指定的帖子 ID 列表creator 抓取指定创作者主页的内容。各平台自己的配置在 config/ 目录分文件存放比如 xhs_config.py 里维护帖子 ID 和创作者 ID 列表跑 detail 或 creator 模式前把 ID 填进去就行。影响面最大的配置项都集中在 base_config.py这里列几个最常用的配置项作用CRAWLER_MAX_NOTES_COUNT单次最多采集的帖子/视频数默认 15ENABLE_GET_COMMENTS是否采集评论默认开启ENABLE_GET_SUB_COMMENTS是否采集二级评论默认关闭CRAWLER_MAX_SLEEP_SEC请求间隔秒数默认 2 秒MAX_CONCURRENCY_NUM并发爬虫数默认 1ENABLE_GET_MEIDAS是否下载图片/视频资源默认关闭SAVE_DATA_OPTION存储格式下一节细说手机号登录--lt phone走短信转发通道仓库里的 recv_sms.py 和 docs/手机号登录说明.md 有对应说明一般场景用扫码就够了。存储格式怎么选从 CSV 到 PostgreSQL七种存储方式各有取舍。文件类里CSV 适合快速浏览JSON 结构完整、便于程序解析JSONL 是默认格式每行一个 JSON 对象追加写入性能好适合大批量采集Excel 模式自带多工作表内容、评论、创作者和格式化标题适合直接做报告。数据库类里SQLite 最轻量选它后首次运行会自动建表MySQL 和 PostgreSQL 需要先用--init_db mysql或 postgres初始化再配合--save_data_option db或 postgres使用数据库模式带去重能力重复采集同一条内容不会插两次MongoDB 也在支持列表里适合非结构化数据。切换格式不用改代码命令行加--save_data_option临时生效或改 base_config.py 里的 SAVE_DATA_OPTION 长期生效落盘目录可用 SAVE_DATA_PATH 指定不填默认在 data/ 下。各格式的详细落盘规则见 docs/data_storage_guide.md。实现代码集中在 store/ 目录每个平台的 StoreFactory 按 SAVE_DATA_OPTION 把数据路由到具体存储类想新增一种存储方式只需照这个模式写一个类再注册进去。进阶玩法代理IP池、评论词云与 WebUI代理IP池长时间采集容易触发平台风控项目内置了代理池。把 base_config.py 里的 ENABLE_IP_PROXY 设为 TrueIP_PROXY_PROVIDER_NAME 选服务商kuaidaili、wandouhttp或填静态地址的 staticIP_PROXY_POOL_COUNT 控制池内 IP 数量。IP 的提取、缓存和轮换逻辑在 proxy/proxy_ip_pool.pystatic 模式下直接填 STATIC_PROXY_URL 即可不需要对接服务商 API。词云与可视化界面评论采完后可以生成词云打开 ENABLE_GET_WORDCLOUD 开关停用词表docs/hit_stopwords.txt和中文字体路径已配好自定义词组写在 CUSTOM_WORDS 里即可。注意词云只在 json 或 jsonl 存储模式下才会触发。 不想敲命令的话项目自带 WebUI后端执行uv run uvicorn api.main:app --port 8080前端进 webui 目录npm install npm run dev打开 http://localhost:5173 就能用。界面可以可视化配置平台、登录方式和爬取类型实时查看运行日志还支持已采集数据的预览和导出。使用边界几条不能越的线README 的免责声明写得很直白本项目仅供学习研究禁止商业用途涉及平台数据的行为需遵守目标平台的服务条款和 robots 规则。落到操作层面是四条CRAWLER_MAX_SLEEP_SEC 别调得比 2 还小只采公开数据单账号、单平台别长时间高频跑大规模需求交给代理池和限速去扛而不是硬堆并发。数据落库后同样要留心——这个版本虽然在模型层做了用户信息脱敏但分享或发布采集结果前自己还是要核对一遍字段。到这里从环境准备到数据落库的主链路就完整了装依赖、扫码登录、选模式和存储格式、看 data 目录四步之外剩下的都是调参。【免费下载链接】MediaCrawler小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 评论爬虫、微博帖子 评论爬虫、百度贴吧帖子 百度贴吧评论回复爬虫 | 知乎问答文章评论爬虫项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考