问答
用代码抓 mp.weixin.qq.com 文章,总是拿不到正文或提示环境异常,怎么办?
简短回答
把链接交给公众号文章详情接口,就能拿回标题、纯文本全文、所属公众号和发布时间,每篇 $0.02,1,000 个链接 $20.00。/s/ 开头的短链接和带 __biz 的长链接都能用,已删除的文章返回 not_found,不收费。
同事往表格里贴了 200 个公众号文章链接,让你每篇写一句话总结。在自己电脑上用 requests.get 试了几个都正常,一放到服务器上,要么返回一个写着当前环境异常、完成验证后才能继续访问的页面,要么 HTML 里正文在,却是隐藏的,要等 JavaScript 渲染。公众号文章详情把这些都绕过去了:传链接,拿文章。
返回什么
| 字段 | 内容 |
|---|---|
title |
文章标题 |
text |
纯文本全文,段落各占一行 |
published_at |
发布时间,ISO 8601 格式 |
author |
所属公众号:原始 ID(gh_ 开头)和名称 |
images |
封面图地址 |
ext(加 view=full) |
作者署名、摘要、原创还是转载、原文链接 |
正文里的图片不返回,阅读数和点赞数也不在这里,那些要从公众号历史文章里拿。
抓一个链接
curl -G "https://api.okdata.online/v1/wechat_mp/articles/get" \
-H "Authorization: Bearer $OKDATA_API_KEY" \
--data-urlencode "url=https://mp.weixin.qq.com/s/xxxxxxxx" \
--data-urlencode "fields=title,text,published_at,author.name"
长链接一定要用 --data-urlencode,不然里面的 & 会把参数截断。
费用
| 批量 | 调用 | 费用 |
|---|---|---|
| 1 个链接 | 1 | $0.02 |
| 表格里的 200 个链接 | 200 | $4.00 |
| 1,000 个链接 | 1,000 | $20.00 |
指向已删除、已被屏蔽文章的链接返回 not_found,不收费。超时也从不收费,用同一个 Idempotency-Key 重试,就不可能扣两次钱。
容易踩的坑
- 链接格式。 短链接(
/s/AbCdEf…)和长链接(/s?__biz=…&mid=…&idx=…&sn=…)都行。从微信里复制出来的链接有时带一串追踪参数,不影响。 - 一篇文章多个链接。 同一篇文章可能以好几个不同的地址被分享出去。去重用返回的
id,别用你传进去的链接。 - 文本不可信。 如果交给模型读,要讲明文章内容只是资料,不是给它的指令。
- 版权。 做摘要、做研究没问题,整篇转载要作者授权。
什么时候自己抓更合适
每周几十个链接、从家里的网络发请求,普通 HTTP 请求加解析 js_content 元素多半能成,还不花钱。量一大或者换到云服务器上就不灵了,这时候用 API 才省事。如果你只是想让 AI 助手帮你读链接、不想写代码,接上 MCP 服务,把链接贴进对话就行。
更新于