Weibo 微博数据备份

Other

使用 Playwright 自动化下载微博(weibo)收藏内容,本人或其他博主发表微博内容所有历史记录,包括图片、视频和长文章。 当用户提到"微博收藏"、"下载微博"、"备份微博"、"weibo favorites"、 "抓取微博内容"、"保存微博图片"或任何与微博数据备份相关的需求时, 支持 headless 模式、支持图片尺寸选择、视频下载、长文章提取等功能,以Markdown格式保存。。

Install

openclaw skills install weibo-backup

微博下载工具使用指南

概述

此工具使用 Playwright 自动化浏览器来下载微博内容,包括:

  • 支持下载微博收藏、本人微博、他人微博
  • 图片(支持九宫格排列,支持多种尺寸:360px、480px、690px、2000px、原图 large)
  • 视频(可选下载, 默认最高质量)
  • 长文章(可选下载)
  • Markdown 双向链接 - 在保存的 Markdown 文件中添加"前一条"和"下一条"导航链接,方便浏览

请正确使用本技能,用于微博收藏、个人数据备份或者关注博主的内容备份保存。不能用于大规模的商业数据采集。

前置要求

  1. Python 环境:需要 Python 3.8+
  2. 依赖安装
    pip install playwright
    playwright install chromium
    

Script Directory

Determine this SKILL.md directory as {baseDir}.

ScriptPurpose
weibo_favorites_4skill.pyMain python script entry point

使用流程

  1. 检查 {baseDir}/cookies.json 文件是否存在, 或 {baseDir}/user_data_dir or user input user_data_dir 是否存在且包含有效的用户数据
  2. 如果用户cookies数据不存在,或者用户没有提供 target url, 则提示用户: 我将运行script以打开浏览器,请在60秒内完成登录,并进入需要下载的页面:收藏页 / 本人主页 / 他人主页。
  3. 完成提示后再使用命令脚本下载微博收藏内容, 第一次下载可以用无参数运行快速得到预览结果。
  4. 如果用户提供--url参数, 且用户cookies数据存在,则参照日常使用命令示例,不提示用户直接运行下载脚本。
  5. 运行完成后,提示用户输出目录的具体位置

注意 : 如果不存在/cookies.json,或者用户没有提供 target url, 一定不能直接运行下载脚本, 你要分两步, 先提示用户再运行。

常用命令示例

首先提示用户在60秒内完成登录,并进入需要下载的页面:收藏页 / 本人主页 / 他人主页。 完成提示后再使用命令脚本下载微博收藏内容, 第一次下载可以用无参数运行快速得到预览结果。 如果用户提供--url参数, 且{baseDir}/cookies.json 文件存在,则推荐使用headless 模式。

基础使用(下载10条记录,360px图片, 不下载视频, 推荐给用户首次使用,可以快速得到预览结果)

python {baseDir}/weibo_favorites_4skill.py

注: 不提供output-dir参数,默认输出到skill脚本所在目录下的output目录。

日常使用(推荐配置, 推荐给用户后续的日常使用,headless 模式,下载600条记录包括高清图片,视频,长文章, 跳过已存在的记录 )

python {baseDir}/weibo_favorites_4skill.py \
  --image-size large \
  --download-video \
  --download-article \
  --max-download 600 \
  --skip-existing \
  --headless

参数说明

参数说明默认值
--url目标微博用户主页或收藏页面URLhttps://weibo.com
--max-download最大下载数量10
--skip-existing跳过已存在的记录False
--image-size图片尺寸:360/480/690/2000/large360
--download-video下载视频到本地开关参数,不需要指定值,无此参数则只保留视频链接
--download-article下载长文章到本地开关参数,不需要指定值,无此参数则只保留文章链接
--batch-size分批次每次下载记录数20
--headless无头模式(不显示浏览器)开关参数,不需要指定值,无此参数则显示浏览器窗口
--user-data-dir浏览器用户数据目录无此参数默认使用 cookies.json
--output-dir自定义输出目录python脚本所在目录下的output目录

输出目录结构

output/
├── pictures/          # 图片目录
│   └── {record_id}/   # 每条微博的图片
├── videos/            # 视频目录
├── articles/          # 长文章目录
│   └── pictures/      # 文章中的图片
└── {author}_{date}_{id}.md  # 微博内容Markdown文件

工作流程

  1. 启动浏览器:根据参数选择启动方式
  2. 检查登录状态:如需要登录,提示用户手动登录
  3. 滚动页面:自动滚动加载更多微博
  4. 提取数据:解析微博内容、图片、视频链接
  5. 下载资源:下载图片、视频到本地
  6. 生成 Markdown:保存微博文本和图片引用

注意事项

  1. 首次登录:不能使用 headless 模式,需要看到浏览器窗口进行登录
  2. 登录状态:建议定期更新 cookies 或用户数据目录,避免登录过期
  3. 下载限制:微博可能有反爬限制,建议合理设置下载数量
  4. 网络环境:确保网络可以正常访问微博
  5. 存储空间:下载大量高清图片和视频需要足够的磁盘空间

故障排除

登录问题

  • 检查网络连接
  • 尝试删除 cookies.json 或 browser_data 目录重新登录
  • 确保没有开启 VPN 或代理导致访问异常

下载失败

  • 检查磁盘空间
  • 检查目录权限
  • 尝试降低 --max-download 数量

浏览器启动失败

  • 确保已运行 playwright install chromium
  • 检查系统是否支持 Chromium 运行