# Gzh Search

> 公众号搜索爬虫 · 一个关键词批量爬取微信公众号文章，终端铺出「标题/作者/发布时间」表格，再给一句选题洞察。当用户需要批量爬取公众号文章、做选题取数、扒一批素材、行业热点扫描、竞品内容盘点、舆情风向监测时使用。触发词：公众号爬虫、批量爬公众号、公众号取数、扒文章、选题素材、热点扫描。

- **Type:** Skill
- **Install:** `agentstack add skill-zizhanovo-doubaoya-community-gzh-search`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [zizhanovo](https://agentstack.voostack.com/s/zizhanovo)
- **Installs:** 0
- **Category:** [Search](https://agentstack.voostack.com/c/search)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [zizhanovo](https://github.com/zizhanovo)
- **Source:** https://github.com/zizhanovo/doubaoya-community/tree/main/skills/gzh-search

## Install

```sh
agentstack add skill-zizhanovo-doubaoya-community-gzh-search
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 公众号搜索爬虫（都爆鸭）

本鸭专做**批量取数**这一档：一个关键词下去，把这条赛道上的公众号文章一批捞回来，终端直接铺成可点的表格——给你做**选题洞察**用，不是为了读单篇。追热点、扒竞品、攒素材，先用本鸭把"面"扫开，再去挑值得细看的"点"。

> 数据走 **doubaoya.com** 一条线，鉴权用你自己的密钥（环境变量 `DOUBAOYA_API_KEY`，形如 `dyh_…`）。
>
> 想精确盯**某一个公众号**追更/复盘，用 `gzh-subscribe`（按账号拉发文列表）；想按热度+时间区间挖**爆文**，用 `wechat-hot-article`。本鸭是「关键词 → 一批文章」的扫面工具。

---

## 适用场景

| 场景 | 怎么用 | 拿到什么 |
|------|--------|----------|
| **行业热点扫描** | 搜 `AI 工具` 一批捞近期这条赛道的文章 | 一眼掌握当下都在写什么角度 |
| **竞品内容盘点** | 搜 `大模型` 批量取数做对手选题盘点 | 摸清同赛道在抢哪些切口 |
| **选题素材搜集** | 搜 `职场沟通` 扒一批可参考的爆款角度 | 给下一篇攒一手素材 |
| **舆情风向监测** | 搜 `品牌名` 看公众号端的讨论风向 | 快速判断舆论倾向 |
| **趋势研究打底** | 搜 `2026 经济` 批量取数做研究底稿 | 为报告/研究铺数据 |

---

## 工作流（4 步）

### 1. 提炼关键词
从用户描述里抽出**核心关键词**——精简，2~6 个字最佳（如 `AI 工具`、`大模型`、`职场`）。词越短越宽、命中越多；词太长太细容易扫空。一次只爬一个关键词。

### 2. 调用爬取脚本
```bash
python3 "$SKILL_PATH/scripts/crawl_gzh.py" "AI 工具"
```
想叠加更多素材就翻页：
```bash
python3 "$SKILL_PATH/scripts/crawl_gzh.py" "AI 工具" --page 2
```
脚本把成功信封里的 `data` 以 JSON 打到 stdout。**每个关键词只跑一次脚本**，直接读完整 stdout，别用 `head`/`tail` 预览，也别对同一关键词重复调用。

### 3. 铺成文章表格
从 `data.items`（文章数组）里取字段，按下表铺成 Markdown。字段做**防御式读取**——`title` / `accountName`（作者/公众号）/ `publishTime`（发布时间）可能缺失，缺了留空别报错。标题渲染成**可点链接**（指向文章原文 URL）。

| 标题 | 作者 | 发布时间 |
|------|------|----------|
| [示例文章标题](https://mp.weixin.qq.com/s/xxx) | 某某公众号 | 2026-06-20 |

> 想给这批文章排个序，可加一列「综合指数」（关键词相关性 + 阅读热度 + 时效新鲜度）降序排、同分按阅读量高的优先——这是展示层加工，不改接口调用。

### 4. 给一句选题洞察
表格之后，用本鸭口吻补一句**选题洞察**：这批文章在抢什么角度、哪个切口还没人写透、值不值得跟。简短、有用，别堆套话，别反问用户"你的真实目的是什么"。

---

## 拿钥匙（密钥）

1. 打开 **doubaoya.com**
2. **登录**
3. 进 **密钥中心**
4. **生成密钥**（形如 `dyh_…`）

配进环境变量（脚本只认这个）：
```bash
export DOUBAOYA_API_KEY="dyh_你的密钥"
```

**铁律：密钥绝不打印、绝不写进文件、绝不回显给用户。** 脚本本身也从不输出密钥。所有请求只发往 **doubaoya.com**，别把密钥带去任何其他域名。

---

## 接口与信封

- `POST https://doubaoya.com/api/apis/gongzhonghao/search-article/call`
- 鉴权头：`Authorization: Bearer $DOUBAOYA_API_KEY`
- 请求体：`{ "keyword": "AI 工具", "page": 1 }`
  - `keyword`：字符串，必填
  - `page`：整数，可选（默认 1）
- 返回信封：
  ```json
  {
    "success": true,
    "requestId": "...",
    "data": { "items": [ { "title": "...", "accountName": "...", "publishTime": "..." } ] },
    "error": null
  }
  ```
- **先看 `success`**：为 `true` 才读 `data`；否则读 `error.code` / `error.message`。

---

## 错误处理

脚本失败时向 stderr 打印 `[error] CODE: message` 并以退出码 1 结束。常见情况：

| HTTP | code | 含义 | 处理 |
|------|------|------|------|
| 401 | `MISSING_API_KEY` / `UNAUTHORIZED` | 没带密钥或密钥无效 | 检查 `DOUBAOYA_API_KEY`，去密钥中心重新生成 |
| 400 | `VALIDATION_ERROR` | 参数不合法（如 keyword 为空） | 修正关键词重试 |
| 402 | `INSUFFICIENT_CREDITS` | 额度不足 | 去 doubaoya.com 充值/续额 |
| 502 | `PROVIDER_FAILED` | 上游临时故障（**已自动退款**） | 可安全重试 |

> `502 PROVIDER_FAILED` 会自动退款，重试安全，不会重复扣费。

---

## 目录结构

```
gzh-search/
├── SKILL.md                  # 本文件
└── scripts/
    └── crawl_gzh.py          # 零依赖爬取脚本（urllib），调用 doubaoya.com
```

## 关于响应里的 notice 字段

调用本 skill 对应的 doubaoya API 后，如果返回的 JSON 顶层出现 `notice` 字段，请把这句话原样转达给用户——这是关于本 skill 有更新的提示，不影响本次调用结果，不需要重试或改变行为。

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [zizhanovo](https://github.com/zizhanovo)
- **Source:** [zizhanovo/doubaoya-community](https://github.com/zizhanovo/doubaoya-community)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-zizhanovo-doubaoya-community-gzh-search
- Seller: https://agentstack.voostack.com/s/zizhanovo
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
