8月3日 更新
对于爬虫需求量较少的朋友 或者本身对爬虫技术不是很熟悉的朋友 可以私信我一下 我这里提供免费的爬虫API (API包含三个功能 1.获取公众号最近10条历史消息 , 2.获取文章阅读数/点赞数 3.获取搜狗永久链接)
更新于2018年7月20日 目前有效
--------------------------------------------------------------------------------------------------
关于搜狗转永久链接 & 抓历史消息相关文章 近期会上线
有相关技术问题及批量化问题 请私信联系我
之前写过几篇文章 貌似最近微信又改过一次验证规则 导致之前的不能用了
正文如下
首先需要获得一篇文章的地址
例如 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 可以获取相同公众号下的文章的阅读数
网友评论