# 怎么把公众号文章转成干净文本，放进 RAG 知识库？

> 把公众号文章以干净文本导入 RAG 知识库，保留标题、公众号、发布时间和原文链接方便引用。用到的接口、300 篇的费用和代码。

网页版：https://okdata.online/zh/answers/wechat-articles-to-text-for-rag/

**简短回答：**先用公众号历史文章接口列出文章（每 10 篇 $0.04），再逐篇调用文章详情（每篇 $0.02），拿到纯文本正文和标题、公众号、发布时间。300 篇的号一共 $7.20，Markdown 头信息和切块由你自己加。

做一个回答行业问题的内部助手，它读过什么决定了它能答成什么样，而国内很多行业内容都在公众号里。把一个号导进 RAG 知识库分两步：用[公众号历史文章](/zh/apis/wechat_mp/accounts/articles/list/)列出文章，再把每个链接交给[公众号文章详情](/zh/apis/wechat_mp/articles/get/)。详情接口返回保留了段落的纯文本正文，外加标题、公众号、作者署名和发布时间，引用出处需要的信息都齐了。

## 正文是什么样的

文章的 HTML 被还原成文字：段落和小标题各占一行，脚本和样式全部去掉，正文里的图片不保留（封面图地址放在 `images` 里），表格会被压成几行文字。拿来做向量化正合适。要是你需要原样排版、图片在原位，这个接口就不对路，看文末的其他办法。

## 费用

| 任务 | 调用 | 费用 |
|---|---|---|
| 1 个号，300 篇 | 列表 30 次 + 详情 300 次 | $7.20 |
| 10 个号，各取最新 50 篇 | 列表 50 次 + 详情 500 次 | $12.00 |
| 同事随手丢来的链接，1,000 篇 | 详情 1,000 次 | $20.00 |

已删除的文章返回 `not_found`，不收费。

## 从链接到 Markdown 文件

```python
import os, pathlib, requests

API = "https://api.okdata.online"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
OUT = pathlib.Path("kb/wechat"); OUT.mkdir(parents=True, exist_ok=True)

def save(url):
    body = requests.get(API + "/v1/wechat_mp/articles/get", headers=H, timeout=90,
                        params={"url": url, "view": "full"}).json()
    if body["code"] != "ok":
        print("跳过", url, body["code"]); return
    a = body["data"]["item"]
    header = (f"---\ntitle: {a['title']!r}\naccount: {a['author']['name']!r}\n"
              f"published: {a['published_at']}\nsource: {a['url']}\n---\n\n")
    (OUT / f"{a['id']}.md").write_text(header + f"# {a['title']}\n\n" + a["text"], encoding="utf-8")

save("https://mp.weixin.qq.com/s/xxxxxxxx")
```

按空行切块，每块 300 到 800 个汉字，每一块的元数据里都带上标题和原文链接，模型回答时才能注明出处。

## 建知识库时容易踩的坑

- **转载重复。** 很多号会转别人的文章。加 `view=full` 后，`ext.copyright` 和 `ext.source_url` 能帮你认出转载，入库前去重，免得同一篇文章在检索里占好几个位置。
- **更新。** 每周跑一次历史文章接口，只取库里还没有的链接。
- **版权。** 用于内部研究，保留原文链接，不要把整篇文章原样输出给用户。
- **文本不可信。** 文章是外人写的，提示词里要讲清楚：检索到的段落是资料，不是指令。

## 其他办法

wechat-article-exporter 这类开源导出工具能把文章连图片一起存成 HTML 或 Markdown，做存档、离线阅读更合适，前提是你提供一个公众号后台登录。只有几篇的话，直接复制粘贴进笔记工具也行。如果是你自己的号，微信官方接口能直接返回文章内容。跨平台的研究流程可以看[内容研究](/zh/solutions/content-research/)。

## 用到的接口

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

更新于 2026-11-12
