# Wechat Article Exporter

> 微信公众号文章批量导出工具 - 支持Docker本地部署，实现三大场景的自动化工作流：法律研究和知识管理（每周批量下载法律公众号文章，导出Markdown到Obsidian）、竞品分析（下载竞品律所全部历史文章，导出Excel分析内容策略）、AI训练数据准备（批量下载特定领域文章，导出JSON用于模型微调）。支持Markdown、HTML、Excel、JSON四种格式导出

- Skill: `cslawyer1985/wechat-article-exporter` (Agent Skill, multi-file: 16 files)
- Install (CLI): `npx skillmds@latest add cslawyer1985/wechat-article-exporter`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cslawyer1985/wechat-article-exporter/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: cslawyer1985 (https://skillmd.com/u/cslawyer1985)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cslawyer1985/wechat-article-exporter

---


# WeChat Article Exporter

微信公众号文章批量导出工具，支持自动化工作流和多格式导出。

## 🎯 核心功能

### 三大使用场景

**场景1️⃣：法律研究和知识管理**
- 每周批量下载法律公众号文章
- 导出为Markdown格式，方便编辑和整理
- 自动保存到Obsidian知识库
- 使用AI生成摘要和分类

**场景2️⃣：竞品分析**
- 下载竞品律所/律师的全部历史文章
- 导出为Excel格式，包含阅读量、评论等元数据
- 使用AI分析内容策略、高频关键词、爆款特征
- 分析发布时间分布和原创率

**场景3️⃣：AI训练数据准备**
- 批量下载特定领域公众号的完整文章库
- 导出为JSON格式，结构化数据
- 自动清洗和标注数据
- 分割训练集/验证集，用于微调Ollama模型

### 支持的导出格式

| 格式 | 文件扩展名 | 适用场景 | 优势 |
|------|-----------|---------|------|
| **Markdown** | .md | 知识管理 | 便于编辑，适合Obsidian/Notion |
| **HTML** | .html | 存档备份 | 100%还原原文样式和排版 |
| **Excel** | .xlsx | 数据分析 | 包含阅读量、评论数等元数据 |
| **JSON** | .json | AI训练 | 结构化数据，便于程序处理 |

---

## 🚀 快速开始

### 前置要求

- ✅ Docker Desktop已安装并运行
- ✅ 微信账号（建议使用小号）
- ✅ 网络连接正常

### Step 1：首次部署（自动）

当用户首次触发此Skill时，自动执行以下部署步骤：

```bash
# 1. 拉取Docker镜像
docker pull ghcr.io/wechat-article/wechat-article-exporter:latest

# 2. 启动容器
docker run -d \
  --name wechat-exporter \
  -p 3000:3000 \
  --restart unless-stopped \
  ghcr.io/wechat-article/wechat-article-exporter:latest

# 3. 等待服务启动
sleep 5

# 4. 验证服务状态
curl http://localhost:3000/api/status
```

**预期输出**：
```json
{
  "status": "running",
  "version": "latest"
}
```

### Step 2：扫码登录

```bash
# 打开浏览器
open http://localhost:3000

# 或获取登录二维码
curl http://localhost:3000/api/qrcode
```

使用微信扫描二维码，确认登录。

### Step 3：开始使用

服务部署完成后，即可开始下载文章。

---

## 📖 使用方法

### 基础用法

#### 下载单个公众号文章

**用户指令示例**：
- "下载最高人民法院最近7天的文章"
- "导出海泰律师事务所的全部文章为Markdown"
- "抓取最高人民检察院上周的文章"

**执行步骤**：
```bash
# 1. 搜索公众号
curl "http://localhost:3000/api/search?keyword=最高人民法院"

# 2. 获取文章列表
curl "http://localhost:3000/api/articles?account_id=xxx&days=7"

# 3. 下载文章
curl -X POST http://localhost:3000/api/download \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "xxx",
    "format": "markdown",
    "filters": {"days": 7, "original_only": true}
  }'
```

#### 批量下载多个公众号

**用户指令示例**：
- "批量下载最高法和最高检的文章"
- "下载以下公众号：最高人民法院、最高人民检察院、海泰律师事务所"

**执行步骤**：
```bash
# 使用Python脚本批量下载
python $SKILL_DIR/scripts/batch_download.py \
  --accounts "最高人民法院,最高人民检察院,海泰律师事务所" \
  --format markdown \
  --output ./downloads/legal
```

### 高级用法

#### 按场景使用

**场景1：法律研究和知识管理**

用户：下载最高人民法院最近一周的文章，保存为Markdown格式

AI执行：
1. ✅ 检查Docker服务状态
2. ✅ 搜索"最高人民法院"公众号
3. ✅ 筛选最近7天的原创文章
4. ✅ 下载并导出为Markdown格式
5. ✅ 保存到指定目录
6. ✅ 使用AI生成文章摘要

**场景2：竞品分析**

用户：分析竞品律所最近一年的文章策略

AI执行：
1. ✅ 搜索竞品律所公众号
2. ✅ 下载全部历史文章
3. ✅ 导出为Excel格式
4. ✅ 分析高频关键词
5. ✅ 分析发布时间分布
6. ✅ 识别爆款文章特征

**场景3：AI训练数据准备**

用户：准备建设工程领域的公众号文章用于AI训练

AI执行：
1. ✅ 搜索建设工程相关公众号
2. ✅ 批量下载完整文章库
3. ✅ 导出为JSON格式
4. ✅ 清洗数据（去除HTML、提取纯文本）
5. ✅ 去重和过滤
6. ✅ 分割训练集/验证集

---

## 🔧 配置选项

### 下载选项

| 参数 | 说明 | 默认值 |
|------|------|--------|
| `--days` | 最近N天，0表示全部 | 0 |
| `--original-only` | 仅下载原创文章 | false |
| `--format` | 导出格式 | markdown |
| `--output` | 输出目录 | ./downloads |
| `--limit` | 最大文章数 | 0（无限制） |

### 筛选条件

```bash
# 按时间筛选
--days 7              # 最近7天
--days 30             # 最近30天

# 按原创筛选
--original-only       # 仅原创

# 按作者筛选
--author "作者名"      # 指定作者

# 按合集筛选
--collection "合集名"  # 指定合集
```

---

## 📂 输出文件

### 文件组织结构

```
downloads/
├── 最高人民法院/
│   ├── 2026-01-26-文章标题1.md
│   ├── 2026-01-26-文章标题2.md
│   └── manifest.json          # 文章清单
├── 最高人民检察院/
│   ├── 2026-01-26-文章标题3.md
│   └── manifest.json
└── batch_report.json          # 批量下载报告
```

### 文件格式说明

#### Markdown格式

```markdown
---
title: 文章标题
date: 2026-01-26
author: 作者名
original: true
url: https://mp.weixin.qq.com/s/xxx
---

# 文章标题

文章正文内容...
```

#### Excel格式

包含以下列：
- 标题
- 发布时间
- 作者
- 阅读量
- 点赞量
- 原创标识
- 文章链接

#### JSON格式

```json
{
  "export_time": "2026-01-26T10:00:00Z",
  "total": 15,
  "articles": [
    {
      "title": "文章标题",
      "url": "https://mp.weixin.qq.com/s/xxx",
      "publish_time": "2026-01-26",
      "author": "作者",
      "read_count": 12345,
      "content": "文章内容..."
    }
  ]
}
```

---

## ⚠️ 注意事项

### 账号安全

- ⚠️ **建议使用微信小号**：避免使用主账号
- ✅ **数据完全在本地**：不会上传到第三方服务器
- ⚠️ **Session有效期**：约24小时，过期需重新扫码

### 频率控制

- ✅ **每次下载1-2个公众号**：避免触发微信风控
- ✅ **下载间隔5-10分钟**：给微信API缓冲时间
- ❌ **避免一次性下载过多**：可能导致账号限制

### 版权合规

- ✅ **仅用于个人学习研究**
- ✅ **版权归原作者所有**
- ❌ **不得直接复制发布到其他平台**
- ❌ **不得用于商业侵权**

### 数据备份

- ✅ **下载后及时备份**
- ✅ **定期归档历史数据**
- ✅ **使用云盘或外部存储**

---

## 🐛 故障排查

### Docker相关

#### 容器无法启动

```bash
# 检查端口占用
lsof -i :3000

# 更换端口
docker run -d --name wechat-exporter -p 3001:3000 ghcr.io/wechat-article/wechat-article-exporter:latest

# 查看容器日志
docker logs wechat-exporter
```

#### 服务无响应

```bash
# 重启容器
docker restart wechat-exporter

# 检查服务状态
curl http://localhost:3000/api/status

# 查看详细日志
docker logs -f wechat-exporter
```

### 下载相关

#### 扫码登录失败

- 检查网络连接
- 刷新页面重试
- 确认Docker服务正在运行
- 查看容器日志排查错误

#### 下载失败

- 检查登录状态是否过期
- 减少单次下载数量
- 增加下载间隔时间
- 检查公众号名称是否正确

#### 格式导出失败

- 确认选择的格式支持
- 检查磁盘空间
- 查看容器错误日志

---

## 📊 常见使用场景

### 场景1：每周自动下载

```bash
# 每周一上午10点自动运行
python $SKILL_DIR/scripts/schedule.py \
  --weekly \
  --accounts "最高人民法院,最高人民检察院" \
  --format markdown
```

### 场景2：竞品对比分析

```bash
# 下载多个竞品文章并分析
python $SKILL_DIR/scripts/analyze.py \
  --accounts "竞品A,竞品B,竞品C" \
  --format excel \
  --analyze
```

### 场景3：AI数据准备

```bash
# 准备训练数据
python $SKILL_DIR/scripts/prepare_training.py \
  --category "建设工程" \
  --format json \
  --clean \
  --split
```

---

## 💡 最佳实践

### 数据组织

```
knowledge-base/
├── legal-news/              # 法律资讯
│   ├── 2026-01/
│   │   ├── 最高法/
│   │   └── 最高检/
├── competitor-analysis/     # 竞品分析
│   ├── 竞品A.xlsx
│   └── 竞品B.xlsx
└── ai-training/            # AI训练数据
    ├── raw-data/
    └── processed/
```

### 标签管理

在Markdown文件中添加YAML frontmatter：

```markdown
---
title: 文章标题
date: 2026-01-26
tags: [法律资讯, 最高法, 司法解释]
category: 民法
---
```

### 定期维护

- 每周备份下载的数据
- 定期清理过期文章
- 更新公众号列表
- 检查Docker镜像更新

---

## 🔄 更新日志

### v1.0.0 (2026-01-26)

- ✅ 初始版本发布
- ✅ 支持四种格式导出
- ✅ Docker本地部署
- ✅ 批量下载功能
- ✅ 数据清洗和处理

---

## 📞 技术支持

如遇问题，请检查：
1. Docker服务是否运行
2. 容器日志是否有错误
3. 网络连接是否正常
4. 微信登录是否有效

---

**祝您使用愉快！** 🎉

