---
name: zsxq-fetcher
description: |
  知识星球日终抓取与汇总Skill v2.0
  
  核心功能:
  1. 自动抓取知识星球帖子（低频防限流）
  2. 结构化汇总报告（行业分布/情绪分析/观点归纳）
  3. 支持断点续传和去重
  
  **抓取策略（超保守）**:
  - 请求间隔: 8-15秒（降低限流风险）
  - 限流等待: 60秒起，逐次递增
  - 轮次冷却: 60秒（每轮后休息）
  
  **汇总报告包含**:
  - 数据概览（帖子数/字数）
  - 热点行业分布（AI/军工/新能源等10大行业）
  - 市场情绪统计（看多/看空比例）
  - 政策/事件关注度
  - 核心观点归纳（基于高频关键词）
  - 明日关注方向
  
  **输出文件**:
  - data/zsxq/raw/YYYY-MM-DD.json （原始数据）
  - data/zsxq/summary_YYYY-MM-DD.md （结构化汇总报告）
  
  定时: 每日23:30 (UTC 15:30)
  
  触发关键词: 知识星球、zsxq、星球汇总
---

# 知识星球抓取与汇总 Skill v2.0

## 功能

1. **自动抓取**: 从知识星球API抓取当日帖子
2. **防限流**: 超保守策略（8-15秒间隔，60秒限流等待）
3. **去重**: 全局seen_ids去重，支持断点续传
4. **结构化汇总**: 自动生成行业分布/情绪分析/观点归纳报告

## 抓取策略

### 频率控制（降低限流风险）

| 参数 | 旧值 | 新值 | 说明 |
|:---|:---:|:---:|:---|
| 最小间隔 | 5s | **8s** | 降低请求频率 |
| 最大间隔 | 10s | **15s** | 随机延迟范围 |
| 限流等待 | 30s | **60s** | 触发限流后等待 |
| 轮次冷却 | 30s | **60s** | 每轮抓取后休息 |
| 退避基数 | 5s | **10s** | 网络错误退避 |

### 限流处理

```
触发限流(code=1059):
  第1次重试: 等待60秒
  第2次重试: 等待120秒  
  第3次重试: 等待180秒
  仍然失败: 停止抓取，保存已获取数据
```

## 汇总报告结构

### 【一、数据概览】
- 抓取帖子数
- 总字数
- 平均单帖长度

### 【二、热点行业分布】
- AI/人工智能
- 半导体/芯片
- 新能源
- 军工
- 医药
- 金融
- 消费
- 通信
- 计算机
- 机器人

### 【三、市场情绪统计】
- 🟢 看多情绪（买入/增持/看好等）
- 🔴 看空情绪（卖出/减持/看空等）
- 情绪指数（正值看多，负值看空）

### 【四、政策/事件关注度】
- 政府工作报告提及次数
- 两会/政策关键词统计

### 【五、核心观点归纳】
基于高频行业自动生成:
1. AI产业观点
2. 军工板块观点
3. 新能源观点
4. 政策面解读
5. 市场情绪总结

### 【六、明日关注方向】
- 前三热点行业

### 【七、数据质量】
- 抓取状态（完整/部分）
- 文件路径
- 生成时间

## 使用方法

### 手动触发

```bash
cd /root/.openclaw/workspace
export ZSXQ_COOKIES='zsxq_access_token=xxx'
./venv_runner.sh tools/zsxq_fetcher_prod.py
```

### 定时任务（Cron）

```bash
# 每日23:30执行（北京时间）
# UTC 15:30 = 北京时间 23:30
30 15 * * * cd /root/.openclaw/workspace && export ZSXQ_COOKIES='zsxq_access_token=26FC1241-0A1A-42BF-87B9-BE97A4A42AB1_2ECB6A0A4CD9622F' && ./venv_runner.sh tools/zsxq_fetcher_prod.py
```

### 环境变量

```bash
ZSXQ_COOKIES=zsq_access_token=xxx
ZSXQ_GROUP_ID=[REDACTED_PHONE]
ZSXQ_DATA_DIR=/root/.openclaw/workspace/data/zsxq
```

## 输出文件

| 文件 | 路径 | 说明 |
|:---|:---|:---|
| 原始数据 | `data/zsxq/raw/YYYY-MM-DD.json` | 242条帖子完整数据 |
| 汇总报告 | `data/zsxq/summary_YYYY-MM-DD.md` | 结构化分析报告 |
| 统计报告 | `data/zsxq/report_YYYYMMDD_HHMMSS.txt` | 简要统计 |
| 抓取日志 | `data/zsxq/fetcher.log` | 运行日志 |
| 断点文件 | `data/zsxq/checkpoint.json` | 断点续传 |
| 去重记录 | `data/zsxq/seen_ids.txt` | 已抓取ID |

## 脚本结构

```
tools/zsxq_fetcher_prod.py
├── ZsxqFetcher 类
│   ├── __init__()          # 初始化
│   ├── get_topics()        # API请求（含限流处理）
│   ├── extract_topic()     # 数据提取
│   ├── save_to_daily_file() # 按日期落盘
│   ├── fetch_with_pagination() # 分页抓取
│   ├── generate_summary_report() # ⭐ 新增：结构化汇总
│   └── generate_daily_report()   # 简要统计
└── main()                  # 主函数
```

## 依赖

```python
requests>=2.28.0
```

## 版本历史

### v2.[REDACTED_PHONE])
- ⭐ 新增结构化汇总报告（行业/情绪/观点归纳）
- 🔧 优化抓取频率（8-15秒间隔，60秒限流等待）
- 🔧 增加轮次冷却（60秒）
- 🔧 基于旧脚本修改，确保cron兼容

### v1.[REDACTED_PHONE])
- 初始版本
- 基础抓取功能
- 断点续传
- 去重机制

## 注意事项

1. **Cookie有效期**: 知识星球Cookie约7-15天过期，需定期更新
2. **限流风险**: 即使保守策略仍可能触发限流，脚本会自动等待重试
3. **数据完整性**: 限流严重时可能无法抓取全部数据，汇总报告会标注"部分"
4. **cron时区**: 使用UTC时间，北京时间23:30对应UTC 15:30

## 作者

豆奶投资决策系统