问答

用代码抓 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 服务,把链接贴进对话就行。

更新于