抓包获取微信文章阅读数实战

2024年7月19日更新

距离写这篇文章已经过去了三年了,期间有不少朋友问我能不能提供一套封装好的api供大家使用. 其实这些年一直在做这个事情.有需求的朋友可以私信我. 交流交流

2020年12月24日更新

最近有读者反馈 获取不到评论数 

这个其实很简单,只需要在阅读数接口传入 comment_id 参数即可获取到,

comment_id获取方式在文章的html中



2020年7月8日更新

最近新写了一篇关于爬虫各种技术的科普 https://www.jianshu.com/p/21bfeacbc5d5


2020年 4月18日更新

最近有读者反馈最新的阅读数接口的参数增多

实际我测试了一下 目前文中的使用cookie方式依然可以使用,


想了解相关技术的可以私聊我,或者在下方评论


2019年6月27日更新

经过艰难险阻.. 目前api终于恢复了,可以使用的业务有

1. 搜狗链接转为永久

2. 获取公众号历史发文消息( 支持获取全部历史消息)

3. 获取文章阅读数



12月18日更新

目前API暂时不可用,如果有相关技术的朋友可以联系我,或者遇到问题的朋友也可以与我交流

待我研究出新方案之后 继续提供免费API 感谢各位的支持 

8月3日 更新

对于爬虫需求量较少的朋友 或者本身对爬虫技术不是很熟悉的朋友 可以私信我一下 我这里提供免费的爬虫API (API包含三个功能  1.获取公众号最近10条历史消息 , 2.获取文章阅读数/点赞数 3.获取搜狗永久链接) 


关于搜狗转永久链接 & 抓历史消息相关文章  近期会上线

有相关技术问题及批量化问题 请私信联系我 

之前写过几篇文章 貌似最近微信又改过一次验证规则 导致之前的不能用了



正文如下


首先需要获得一篇文章的地址

例如    https://mp.weixin.qq.com/s/S_g27h2KJPSb1NZ9DPM5Ig

我们在手机中访问 可以看到他的阅读数和点赞数 如下图


手机获取微信阅读数

如果在电脑浏览器中访问 是没有阅读数的  并且换了手机/微信的 user-agent 仍然不能获取到阅读数

为了解决这个问题 首先我们 配置好 抓包工具 看一下手机中访问这个页面的时候 究竟有哪些参数

首先配置好 类似 fiddler/charles之类的http/https抓包工具 如果不会配置 自行百度(不要忘记安装https证书   如果是ios10之后的设备 需要在设置中另外开启一个选项 切记!!!!!!!)


配置好抓包工具后 首先我们访问以下文章链接看一下请求


点击文章后的请求


如上图所示 出现了 很多很多的请求  第一个是文章的html连接 后面一次的还有 阅读数接口 和 评论信息接口 还有一个是公众号信息 还有几个不知道是做什么的接口

所以抓包后可以得出结论  阅读数是异步获取的  那就好办了 接下来我们继续看这个接口的参数就好了

https://mp.weixin.qq.com/mp/getappmsgext?f=json&mock=&uin=777&key=777&pass_ticket=QubwCfCA8tQmOKNy05WGE%25252FGdIeQ9xd5smXQdTUznrqfThf6SKZegV%25252BUoNtOHKXYT&wxtoken=777&devicetype=iOS12.0&clientversion=16070025&appmsg_token=966_UjA%252BvpGPcW4k3kPBneqR26gjfiQUlbb0tX_RWCeVBf7_ooOlyQYl1MfANvkqhiXnIy3JX4xFAhbfxM9j&x5=0&f=json

先来看一下这个链接   post传送的方式(我记得之前版本有一个 post参数  参数名为 is_read 值为 1 )

先拿到postman里访问一下尝试


尝试发送请求


结果如上图所示 竟然返回的是错误

继续看一下阅读数接口  发现除了 get的参数 和post的参数之外 还有cookie没做处理 


阅读数接口携带的cookie(部分)

那么这个cookie究竟是从哪里来的呢???

于是再往前翻一下 第一个接口 及文章的接口 

这个接口中 发现了 set-cookie


文章接口中的set-cookie(部分)

通过上图可以看出 微信的操作是 访问了文章接口 会set-cookie 给你 带这个cookie访问阅读数接口 才可以获得阅读数

那接下来我们手动处理一下cookie 再试试

最终成功请求后的结果如下图


阅读数接口

read_num 为阅读数 like_num为点赞数

另外经过我一番整理之后 我发现 cookie生成的方式 依赖于 文章接口中的 X-WECHAT-UIN 和 X-WECHAT-KEY这两个参数 这两个参数的的来源只能是点击文章获取   获取后来置换cookie 从而进行接下来的请求

这两个参数是微信那边生成的 目前不知道算法 而且存在过期时间

另外一个阅读数的关键参数 是 appmsg_token 

这个参数可以在文章页面的html中获取 用正则匹配一下即可

另外还有一点小发现 就是 一篇文章的 X-WECHAT-UIN 和 X-WECHAT-KEY 可以获取相同公众号下的文章的阅读数 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容