
适用场景在内容运营、知识管理或数据备份项目中经常需要将微信公众号文章从网页格式转变为可编辑、可存档的纯文本或 Markdown。无论是个人搭建离线阅读库还是企业做竞品内容监控手动复制粘贴效率极低且容易丢失格式。微信文章转存 API 提供了一条自动化的路径输入文章链接直接获取标题、作者、公众号名、发布时间以及正文内容支持 Markdown 和纯文本同时下载正文中的图片资源。常见场景包括内容归档将历史文章批量保存到本地或云存储避免因原链接失效导致内容丢失。二次加工将 Markdown 格式的内容导入到 CMS、知识库或笔记软件如 Notion、Obsidian中进行编辑。数据分析提取文章元数据发布时间、阅读量等如果平台返回用于内容趋势分析。离线阅读将文章转为纯文本在无网络环境下浏览。接口能力边界该接口属于内容娱乐分类QPS 限制为1 次/秒适合低频或异步处理的业务。单个请求最长超时时间可设为 20 秒受网络和文章内容大小影响。接口只接受微信公众号文章链接域名mp.weixin.qq.com其他网站链接会返回错误。输出能力正文内容支持返回Markdown、纯文本或同时返回两者。元数据标题、作者、公众号名称、发布时间。图片列表正文中每一张图片的直链及文件大小字节可据此自行下载并持久化。限制说明部分文章可能设置了访问权限或已删除接口无法正常抓取会返回错误。阅读量、点赞数等互动数据接口不保证返回示例中为 null请以实际响应为准。图片链接为微信临时资源建议尽快下载保存。请求参数与鉴权接口地址POST https://v1.apizero.cn/api/wechat-archiveHeader 参数参数名是否必填类型说明Authorization是stringAPI 密钥通常格式为Bearer {key}或X-API-Key {key}具体以文档为准。示例中使用X-API-Key方式Content-Type是string固定为application/json请求体JSON字段类型必填说明示例urlstring是微信公众号文章完整链接https://mp.weixin.qq.com/s/hy31xZK6FH3H51qh1zeSKAformatstring否输出格式markdown、text或both同时返回 Markdown 和纯文本bothtimeoutnumber否超时秒数建议 10-3020curl 接入示例使用环境变量存储 API Key 避免明文泄漏export APIZERO_API_KEYyour_api_key_here curl -sS \ -X POST \ -H X-API-Key: $APIZERO_API_KEY \ -H Content-Type: application/json \ -d { url: https://mp.weixin.qq.com/s/hy31xZK6FH3H51qh1zeSKA, format: both, timeout: 20 } \ https://v1.apizero.cn/api/wechat-archive成功响应的 JSON 将直接输出到终端。如果format为both则返回的data.content对象同时包含markdown和text两个字段。Python 代码示例以下通过requests库封装一个可重用的函数并处理常见异常import requests import json import time def archive_wechat_article(url: str, api_key: str, format: str both, timeout: int 20) - dict: 调用微信文章转存 API :param url: 文章链接 :param api_key: API 密钥 :param format: 输出格式 markdown | text | both :param timeout: 请求超时秒数 :return: 解析后的响应 JSON 字典 endpoint https://v1.apizero.cn/api/wechat-archive headers { X-API-Key: api_key, Content-Type: application/json } payload { url: url, format: format, timeout: timeout } try: resp requests.post(endpoint, headersheaders, jsonpayload, timeouttimeout 5) resp.raise_for_status() # 非 2xx 会抛出 HTTPError result resp.json() if result.get(code) ! 0: raise RuntimeError(fAPI Business Error: {result.get(msg)}) return result except requests.exceptions.Timeout: raise TimeoutError(请求超时请检查网络或增大 timeout 参数) except requests.exceptions.ConnectionError: raise ConnectionError(无法连接 API 服务器请检查网络) except json.JSONDecodeError: raise ValueError(响应不是有效的 JSON) except Exception as e: raise RuntimeError(f未知错误: {e}) # 使用示例 if __name__ __main__: API_KEY your_api_key_here # 建议从环境变量读取 TEST_URL https://mp.weixin.qq.com/s/hy31xZK6FH3H51qh1zeSKA try: data archive_wechat_article(TEST_URL, API_KEY, formatboth) print(请求成功request_id:, data[request_id]) meta data[data][meta] print(f标题: {meta[title]}) print(f作者: {meta[author]}) print(f公众号: {meta[account_name]}) print(f发布时间: {meta[publish_time]}) print(f图片数量: {len(data[data][images])}) # 获取 Markdown 正文前200字符预览 md data[data][content][markdown] print(fMarkdown 预览: {md[:200]}...) except Exception as e: print(f错误: {e})返回字段解读响应格式为 JSON外层结构如下字段类型说明codeint业务状态码0 表示成功非 0 表示失败msgstring成功时为成功失败时为错误描述request_idstring请求唯一标识可用于日志追踪dataobject成功时的数据主体data 对象详解字段类型说明metaobject文章元信息contentobject正文内容取决于请求的 formatimagesarray[object]正文中的图片列表meta 对象字段类型说明titlestring文章标题authorstring文章作者可能为空account_namestring公众号名称publish_timestringISO 8601 格式的发布时间如2026-05-01T10:00:0008:00read_numint / null阅读数接口可能不返回为 nulllike_numint / null点赞数接口可能不返回为 nullcontent 对象若 format 为markdown则仅返回markdown字段若为text则仅返回text若为both则同时包含两个字段。每个字段的值都是字符串。images 数组每个元素包含字段类型说明urlstring图片直链微信临时域名建议尽快下载size_bytesint图片文件大小单位为字节常见错误与排查错误现象可能原因解决方式HTTP 401 UnauthorizedAuthorization 头部缺失或 API Key 错误检查 API Key 是否正确确认请求头携带了X-API-KeyHTTP 400 Bad Request请求体 JSON 格式错误或必填字段缺失检查 url 字段是否提供JSON 是否合法HTTP 500 Internal Server Error服务器内部错误通常临时稍后重试若持续出现请联系平台code ! 0, msg 含“链接无效”提供的不是有效微信公众号文章链接确认链接来自mp.weixin.qq.com且文章可正常访问code ! 0, msg 含“抓取超时”文章内容太大或网络延迟导致超过 timeout增大 timeout 参数如 30 秒或检查目标服务器状态code ! 0, msg 含“频率限制”短时间内请求超过 QPS 限制降低请求频率单次请求后至少等待 1 秒图片链接过期404图片为微信临时资源短时间后失效在收到响应后尽快下载图片到本地或 OSS工程化注意事项1. 速率控制QPS 为 1若需要批量处理大量文章如数百篇建议使用队列 异步循环每次请求后间隔 1.1 秒以上避免触发限流。可使用time.sleep(1.1)或 asyncio 的asyncio.sleep。2. 图片持久化3. 超时与重试网络请求存在不确定性建议在客户端实现指数退避重试策略第一次失败后等待 1 秒重试第二次 2 秒第三次 4 秒最多重试 3 次。注意重试前检查错误类型只有 5xx 或网络异常才重试4xx如参数错误不重试。4. 元数据缺失处理部分文章可能不包含作者或发布时间接口返回的字段可能为 null。在入库时需要做空值处理例如用默认值占位。5. 日志与监控记录每次请求的request_id、响应状态、耗时以及错误信息方便排查问题。对于失败超过阈值的文章可设置告警。6. 异步非阻塞架构如果业务需要实时响应如用户在前端触发转存建议将任务放入消息队列如 RabbitMQ、Redis List异步处理前端轮询结果避免因等待 API 响应导致请求阻塞。参考文档微信文章转存 API 官方文档原始 API 文档Markdown