skills/skills.netease.im/papaxia-chinese

papaxia-chinese

SKILL.md

MediaCrawler Skill - 社交媒体内容抓取工具

支持平台

平台 代号
小红书 xhs
抖音 dy
快手 ks
B 站 bili
微博 wb
知乎 zhihu

三种爬取模式

  • search - 根据关键词搜索内容
  • detail - 获取指定 ID 的内容详情
  • creator - 获取创作者主页的所有内容

环境准备

首次使用时需安装依赖:

# 安装 uv(macOS/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 安装 Node.js(抖音、知乎需要,版本 >= 16)
# https://nodejs.org/en/download/

# 进入项目目录安装 Python 依赖
cd MediaCrawler-main
uv sync

# 安装浏览器驱动
uv run playwright install

使用方法

命令格式

cd MediaCrawler-main
uv run main.py --platform <平台> --lt qrcode --type <模式> [其他参数]

登录方式(--lt):qrcode(扫码)、phone(手机号)、cookie

搜索模式(search)

# 基本搜索(多个关键词用逗号分隔)
uv run main.py --platform xhs --lt qrcode --type search --keywords "Python教程,AI工具"

# 常用可选参数
--get_comment true          # 开启评论爬取
--save_data_option sqlite   # 使用 SQLite 存储(支持自动去重)

详情模式(detail)

# 指定内容 ID 爬取(多个 ID 用逗号分隔)
uv run main.py --platform xhs --lt qrcode --type detail --specified_id "id1,id2"

各平台 ID 格式说明:

  • 小红书:笔记 ID(URL 中 /explore/ 后的字符串)
  • 抖音:视频 ID(19 位数字,如 7301234567890123456
  • B 站:BV 号(如 BV1xx411c7mD
  • 快手:photo_id
  • 微博:微博 ID
  • 知乎:回答 ID 或文章 ID

创作者模式(creator)

uv run main.py --platform xhs --lt qrcode --type creator --creator_id "创作者ID"

各平台创作者 ID 获取方式:

  • 小红书:用户主页 URL 中的 ID
  • 抖音MS4wLjABAAAA 开头的字符串
  • B 站:UP 主的数字 UID(如 12345678
  • 快手:用户主页 URL 中的 ID
  • 微博:用户主页 URL weibo.com/u/ 后的数字(如雷军为 1749127163
  • 知乎:用户主页 URL 中的 ID

完整参数说明

参数 说明 默认值
--platform 平台代号 必填
--lt 登录方式:qrcode / phone / cookie 必填
--type 爬取模式:search / detail / creator 必填
--keywords 搜索关键词,逗号分隔(search 模式) -
--specified_id 内容 ID 列表,逗号分隔(detail 模式) -
--creator_id 创作者 ID 列表,逗号分隔(creator 模式) -
--get_comment 是否爬取一级评论 true
--get_sub_comment 是否爬取二级评论 false
--max_comments_count_singlenotes 单内容最大评论数 10
--save_data_option 存储方式:jsonl / csv / excel / sqlite / db jsonl
--max_concurrency_num 并发数(建议不超过 5) 1
--headless 是否无头模式 false

数据存储位置

MediaCrawler-main/data/{platform}/
├── jsonl/
│   ├── search_contents_YYYY-MM-DD_HHmmss.jsonl   # 内容数据(每次任务独立文件)
│   └── search_comments_YYYY-MM-DD_HHmmss.jsonl   # 评论数据(每次任务独立文件)

技能执行流程

当用户请求抓取社交媒体内容时,按以下步骤操作:

  1. 确认需求:确定平台、爬取模式、关键词或目标 ID

  2. 检查环境:确认已安装依赖,工作目录为 MediaCrawler-main

  3. 执行爬虫:根据需求构造命令并运行,如果需要扫码登录,主动通知用户扫码

  4. 生成报告:在 MediaCrawler-main 目录下运行以下 Python 命令(result_formatter.py 是库文件,不能直接执行,必须通过 uv run python -c 调用):

    # 工作目录必须是 MediaCrawler-main
    cd MediaCrawler-main
    
    # search 模式:传入平台和关键词列表(与爬取时的关键词保持一致)
    uv run python -c "
    import sys; sys.path.insert(0, '..')
    from scripts.result_formatter import ResultFormatter
    formatter = ResultFormatter()
    report_path = formatter.generate_report('zhihu', 'search', keywords=['宇宙奥德赛'])
    print('报告已生成:', report_path)
    "
    
    # creator / detail 模式:不传 keywords
    uv run python -c "
    import sys; sys.path.insert(0, '..')
    from scripts.result_formatter import ResultFormatter
    formatter = ResultFormatter()
    report_path = formatter.generate_report('xhs', 'creator')
    print('报告已生成:', report_path)
    "
    

    报告自动保存到 results/{platform}_{keywords}_报告.md

  5. 展示结果:对报告进行总结,将总结内容插入报告开头,展示完整报告


常见问题

扫码登录失败

  1. 确保 --headless false,手动在浏览器中完成验证
  2. 确保用对应平台的 APP 扫码(小红书用小红书 APP,抖音用抖音 APP)
  3. 仍失败时改用 Cookie 登录:
    uv run main.py --platform xhs --lt cookie --cookies "你的Cookie值" --type search --keywords "关键词"
    
    Cookie 获取方法:浏览器登录平台 → F12 开发者工具 → 任意请求 → 复制请求头中的 Cookie

每次都需要重新扫码

短期内多次使用同一平台通常无需重新登录(浏览器数据保存在 browser_data/ 目录)。Cookie 过期(7-30 天)后需重新登录。

数据去重

使用 SQLite 存储可自动去重:

uv run main.py --init_db sqlite   # 首次初始化数据库
uv run main.py --platform xhs --lt qrcode --type search --keywords "关键词" --save_data_option sqlite

注意事项

  1. 仅用于学习和研究目的,不得用于商业用途
  2. 遵守目标平台的使用条款
  3. 合理控制爬取数量和并发数(--max_concurrency_num 建议不超过 5)
Installs
1
First Seen
Apr 14, 2026