# 怎么不登录导出一个公众号的全部历史文章？

> 不扫码、不用微信 Cookie，导出公众号全部历史文章的标题、链接和全文。用到的三个接口、费用和代码。

网页版：https://okdata.online/zh/answers/export-wechat-official-account-articles/

**简短回答：**先用公众号搜索拿到原始 ID（gh_…），已经知道微信号的话可以跳过这一步。再用历史文章接口翻页，每次 10 篇（每次 $0.04），最后逐篇取全文（每篇 $0.02）。全程不扫码、不用 Cookie。500 篇文章的号全文导出共 $12.58，只要标题和链接则是 $2.58。

常见的公众号导出办法都要有人用微信扫码登录，登录态一过期就失效。用 okdata 只需要一个 API key：不用微信号，不用 Cookie，不用扫码。

## 三步调用

1. **找到公众号。** [公众号搜索](/zh/apis/wechat_mp/accounts/search/)按名称搜索，返回匹配的公众号，每个结果的 `id` 就是原始 ID，比如 `gh_363b924965e9`。搜索按返回的账号数计费，一整页最多 $0.58，已经知道微信号就不必搜。
2. **列出历史文章。** [公众号历史文章](/zh/apis/wechat_mp/accounts/articles/list/)传入 `id`（原始 ID 或微信号），每次返回 10 篇，从新到旧，带标题、链接和发布时间。把 `page.next_cursor` 作为 `cursor` 传回，直到 `page.has_more` 为 false。
3. **取全文。** [公众号文章详情](/zh/apis/wechat_mp/articles/get/)传入文章链接，返回纯文本全文，以及公众号和发布时间。阅读数和点赞数（微信展示的话）在历史文章列表里返回。

## 要花多少钱

| 公众号规模 | 调用次数 | 费用 |
|---|---|---|
| 500 篇，只要标题和链接 | 1 + 50 | $2.58 |
| 500 篇，含全文 | 1 + 50 + 500 | $12.58 |
| 只要最新 20 篇全文 | 1 + 2 + 20 | $1.06 |

失败的调用不扣费，包括已删除文章返回的 `not_found`。

## 代码

```python
import json, os, requests

API = "https://api.okdata.online/v1"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}

def get(path, **params):
    body = requests.get(f"{API}/{path}", headers=H, params=params, timeout=60).json()
    if body["code"] != "ok":
        raise RuntimeError(f"{body['code']}: {body['message']}")
    return body

account = get("wechat_mp/accounts/search", query="36氪")["data"]["items"][0]["id"]

cursor, articles = None, []
while True:
    body = get("wechat_mp/accounts/articles/list", id=account, **({"cursor": cursor} if cursor else {}))
    articles += body["data"]["items"]
    if not body["page"]["has_more"]:
        break
    cursor = body["page"]["next_cursor"]

with open("articles.jsonl", "w", encoding="utf-8") as out:
    for a in articles:
        full = get("wechat_mp/articles/get", url=a["url"])["data"]["item"]
        out.write(json.dumps(full, ensure_ascii=False) + "\n")
```

## 注意事项

- 阅读数和点赞数在历史文章列表里返回，微信不展示时为 null，`meta.unavailable` 会注明。
- 新 key 自带的 $0.10 试用额度不够做一次搜索，搜索会先冻结最多 $0.58。可以直接用已知的微信号开始，或者先充值。
- 作为长任务跑时，每篇文章带一个 `Idempotency-Key`，重试不会重复扣费。
- 文章版权属于作者。导出用于研究、监测或备份自己的号；转载时请尊重版权。

## 用到的接口

- [公众号搜索](https://okdata.online/zh/apis/wechat_mp/accounts/search/) `wechat_mp.accounts.search`：$0.058/条 · 每次最多 $0.58
- [公众号历史文章](https://okdata.online/zh/apis/wechat_mp/accounts/articles/list/) `wechat_mp.accounts.articles.list`：$0.04/次 · 每页约 10 篇文章
- [公众号文章详情](https://okdata.online/zh/apis/wechat_mp/articles/get/) `wechat_mp.articles.get`：$0.02/次

更新于 2026-11-11
