# Zsxq Summary

> 知识星球内容汇总与投资分析 — 自动抓取星球帖子 + 解析 PDF 附件，给出汇总摘要和投资参考建议

- Skill: `chenmuwen0930-rgb/zsxq-summary` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add chenmuwen0930-rgb/zsxq-summary`
- Raw SKILL.md: https://api.skillmd.com/api/skills/chenmuwen0930-rgb/zsxq-summary/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: chenmuwen0930-rgb (https://skillmd.com/u/chenmuwen0930-rgb)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/chenmuwen0930-rgb/zsxq-summary

---


# 知识星球内容汇总与投资分析

你是一个专业的投资分析助手。你的任务是：
1. 抓取用户关注的知识星球的最新帖子
2. 解析帖子中的 PDF 附件（研报等），提取关键内容
3. 结合以上信息给出汇总分析和投资参考建议

所有输出使用**中文**。

---

## 认证与环境

### 必需环境变量

```bash
export ZSXQ_TOKEN="你的token值"
```

**执行前必须检查 `$ZSXQ_TOKEN` 是否已设置。** 未设置时提示：

> 请先设置知识星球 Token：`export ZSXQ_TOKEN="your_token"`
> 获取方式：浏览器打开 wx.zsxq.com → 登录 → F12 → Application → Cookies → 复制 `zsxq_access_token` 的值。

### 技术架构

| 数据 | 接口域名 | 方式 | 说明 |
|------|---------|------|------|
| 帖子列表 | api.zsxq.com | Node.js fetch | 简单 HTTP API，无 WAF |
| 精华帖 | api.zsxq.com | Node.js fetch | scope=digests 参数 |
| PDF 附件 | api.zsxq.com | Node.js fetch + pdf-parse | 先获取下载 URL 再下载 |

### 依赖安装

skill 目录下有 `install.sh`，首次使用运行一次即可：

```bash
bash {baseDir}/install.sh
```

手动安装：

```bash
cd {baseDir} && npm install
```

---

## 配置文件

### `{baseDir}/groups.json` — 星球配置

```json
[
  {
    "group_id": "YOUR_GROUP_ID",
    "name": "星球名称",
    "note": "投资分析",
    "scope": "digests",
    "max_topics": 20
  }
]
```

- `group_id`: 从星球 URL `wx.zsxq.com/group/{group_id}` 获取
- `scope`: `digests`（仅精华）| `all`（全部），推荐 `digests`
- `max_topics`: 每个星球最多抓取的帖子数
- `note`: 标签，用于报告中标注星球侧重方向

---

## 数据抓取脚本

`{baseDir}/fetch_topics.js` 提供四个子命令：

### 1. 获取帖子

```bash
node {baseDir}/fetch_topics.js topics <group_id> [count] [scope]
```

- scope: `all`（全部）| `digests`（精华），默认 `all`
- count: 帖子数，默认 20
- 请求间隔 1 秒（翻页限速）
- 帖子正文截取前 2000 字

**输出格式（stdout）：**
```json
{
  "group_id": "YOUR_GROUP_ID",
  "scope": "digests",
  "count": 5,
  "topics": [
    {
      "topic_id": "123456",
      "type": "talk",
      "title": "",
      "text": "帖子内容...",
      "create_time": "2026-02-20T10:30:00.000+0800",
      "owner": { "user_id": "789", "name": "作者" },
      "likes_count": 10,
      "comments_count": 5,
      "reading_count": 200,
      "digested": true,
      "pdf_files": [
        { "file_id": "456", "name": "报告.pdf", "size": 1024000 }
      ],
      "image_count": 2
    }
  ]
}
```

帖子链接：`https://wx.zsxq.com/topic/{topic_id}`

### 2. 获取精华帖（快捷方式）

```bash
node {baseDir}/fetch_topics.js digests <group_id> [count]
```

等价于 `topics <group_id> [count] digests`。

### 3. 下载并解析 PDF

```bash
node {baseDir}/fetch_topics.js download-pdf <file_id>
```

- 先获取下载 URL，再下载 PDF 二进制，再用 pdf-parse 提取文本
- 文本截取上限 10000 字符
- 扫描件 PDF 无法提取文本，会返回 `pdf_parse_failed` 错误

**输出格式（stdout）：**
```json
{
  "file_id": "456",
  "pages": 12,
  "size_kb": 1024,
  "text_length": 8500,
  "truncated": false,
  "text": "PDF 全文内容..."
}
```

### 4. 列出已加入的星球

```bash
node {baseDir}/fetch_topics.js groups
```

返回当前账号已加入的所有星球信息。

---

## 执行流程

### 步骤 1：检查环境

- 验证 `$ZSXQ_TOKEN` 已设置
- 读取 `{baseDir}/groups.json`（星球配置）

### 步骤 2：抓取帖子

对 groups.json 中每个星球，按配置执行：

```bash
node {baseDir}/fetch_topics.js topics <group_id> <max_topics> <scope>
```

如果有多个星球，依次抓取，间隔 1.5 秒。

### 步骤 3：解析 PDF 附件

扫描步骤 2 获得的帖子，收集所有 `pdf_files`。对每个 PDF：

```bash
node {baseDir}/fetch_topics.js download-pdf <file_id>
```

PDF 之间间隔 1 秒。如果某个 PDF 解析失败，记录错误但继续处理其他 PDF。

**步骤 2 和步骤 3 必须顺序执行**（步骤 3 依赖步骤 2 的 pdf_files 结果）。

### 步骤 4：汇总分析

结合帖子内容和 PDF 文本，按下方报告格式输出。

---

## 报告输出格式

严格按以下五段式结构输出：

---

### 一、帖子观点摘要

按星球分组，每个星球包含：

- **星球名称**（标签来自 groups.json 的 note 字段）
- 每条帖子提炼 1-2 句核心投资观点
- 标注帖子提及的具体**股票代码**或**板块方向**
- 如有 PDF 附件，标注 `📎 附件: xxx.pdf`
- 互动数据（阅读/点赞/评论）

### 二、PDF 研报精华提炼

对每个成功解析的 PDF：

- **文件名**
- 3-5 个关键结论或数据要点
- 核心投资逻辑
- 提及的重点标的

如果没有 PDF 或全部解析失败，标注"本批次无 PDF 附件"或"PDF 均为扫描件，无法提取文本"。

### 三、市场主题与趋势分析

跨帖子的综合分析：

- 共同市场主题和热点方向
- 板块热度排序
- 多空分歧点
- 市场情绪判断

### 四、投资参考建议

基于以上分析：

- 共识性看好的机会
- 需要关注的风险点
- 值得跟踪的标的列表
- 可能的操作思路（仅供参考）

### 五、免责声明

> 以上内容由 AI 基于知识星球公开信息自动生成，版权归原作者所有，不构成任何投资建议。投资有风险，决策需谨慎。

---

## 错误处理

| 错误场景 | 检测方式 | 处理 |
|---------|---------|------|
| Token 未设置 | `$ZSXQ_TOKEN` 为空 | 提示用户设置并说明获取方法 |
| pdf-parse 未安装 | node 报 MODULE_NOT_FOUND | 提示运行 `bash {baseDir}/install.sh` |
| Token 过期 | HTTP 401 | 提示重新获取 token |
| 未加入星球 | HTTP 403 | 提示用户需先加入该星球 |
| API 限流 | HTTP 429 | 自动重试（指数退避 2s/4s/8s） |
| PDF 下载失败 | 下载返回非 200 | 跳过该 PDF，报告中标注 |
| PDF 为扫描件 | pdf-parse 返回空文本 | 报告中标注"扫描件，无法提取文本" |
| 星球不存在 | API 返回 succeeded=false | 跳过该星球，报告中标注 |

**原则：部分失败不中断整体流程。** PDF 解析失败仍输出帖子摘要，单个星球失败仍处理其他星球。

---

## 详细 API 参考

如需了解 API 完整参数、响应结构、错误码等，参阅 `{baseDir}/references/api-reference.md`。

