微信公众号文章:长链接会撞验证码,短链接不会
一句话:贴 mp.weixin.qq.com/s/xxxx 这种短链接。 同一篇文章,mp.weixin.qq.com/s?__biz=…&mid=…&idx=…&sn=… 这种长链接,现在大概率只给你一个验证码页。
这不是我们绕不过去的问题,是链接形态的问题。下面是我们自己读取记录里的数字,和拿短链接的两步。
现象:长链接回来的是一个验证码页
拿一条长链接去读,服务器最后落在 mp.weixin.qq.com/mp/wappoc_appmsgcaptcha —— 微信的「环境异常,完成验证后即可继续访问」。页面上没有任何文章内容,只有一个滑块/点选验证。
我们的选择是不去解它:自动识别验证码是绕过对方的人机校验,我们不碰。所以这条链接会被判为「读不到」,返回 422,不扣积分。
数据:短链接一直在读,长链接已经不是
这是我们引擎的记录(只列微信文章的读取,读成功的才记账):
| 日期 | 链接形态 | 结果 |
|---|---|---|
| 10-04、10-05 | 长链接 s?__biz=… |
读到全文 |
| 10-06、10-12、10-17、10-19 | 短链接 s/xxxx |
读到全文 |
| 10-26(三次) | 短链接 s/xxxx |
读到全文 |
| 10-05 之后 | 长链接 s?__biz=… |
只拿到验证码页 |
也就是说:长链接在十月初还能读,之后就不行了;短链接从十月初到今天一直正常。同一天、同一个服务器、同一套请求,差别只在链接怎么写。
为什么两种链接差这么多
长链接带的是文章的完整定位参数:__biz(公众号)、mid(消息 id)、idx(第几条)、sn(签名),有时还有 poc_token。这一串参数的初衷是让文章能在微信外面被打开——所以微信对它的态度最谨慎,风控一旦收紧,先卡的就是它。
短链接 s/xxxx 是「复制链接」这个动作产出的形态,本来就是给「换一个地方打开」用的,跟随的是应用内的会话上下文。我们对两种形态都试过:把 poc_token 去掉再请求一次,长链接照样是验证码页——所以这不是一个可以重试解决的问题,我们只发一次请求,读不到就说读不到。
拿短链接:两步
- 在微信里打开这篇文章;
- 点右上角「⋯」→「复制链接」,把复制出来的东西贴过来。
得到的形如:
https://mp.weixin.qq.com/s/2fBjEf6kDX0245-tMgS5uA
如果你拿到的是长链接,说明你复制的是「在浏览器打开」的地址,或者是从别的地方转来的。回到微信里重新复制一次。
读到了会给你什么
标题、公众号名称、发布时间、正文(保留小标题和列表结构)、配图(图里的文字会一起读出来)。长文章按段落给出,不会截成一段。这条路线不需要你的微信账号,也不需要 Cookie——我们读的是这篇公开文章本身。
读不到的情况也算清楚:付费文章、已被删除、仅粉丝可见、需要验证码的,都返回 422 并说明原因,不扣积分。
同一条链接读法也一样适用于小红书笔记、抖音、TikTok、YouTube:贴进来就行,读不到的不扣积分。小红书的链接也有同样的坑,而且是两个域名: 分享链接的两个域名,其中一个会静默失败。
想直接试:贴一条进来,注册送 10 积分,不用绑卡。