admin 管理员组文章数量: 887007
本小白的第一篇技术分享博客,啊哈哈!!(石乐志)
真好,直接切入正题吧,目前来讲微信公众号文章主要有以下三种渠道可以获取,对应有三种抓取方式,如下~~
- 搜狗微信点击跳入,这算是对咱reptiler最友好的方式了(用requests+xpath就可以很轻松抓到),但是但是,点进去结果没有阅读量评论点赞等等关键要素,那还抓个屁@_@!!~~而且在不登录的情况下还是只能抓10篇而已嘛。我弱弱的试着抓了下,发现数据还是很好拿到的,不过没有代理的童鞋就是要费点心思了,因为你会遇到万恶的验证码,啊哈哈!
- 微信公众平台点击跳入,进入平台需要注册绑定微信,据说微信公众平台也有一种很鸡贼的方式获取到文章,就是编辑页面多了个转载功能,可以直接搜索公众号文章,从接口就可以获取到文章内容,不过貌似不能按公众号搜索,如下:
我就呵呵了,TX一点都不大方嘛,而且好像没阅读量这些数据,没什么价值也就没怎么进去看了。随便扔个链接有兴趣可以进去看看。https://blog.csdn/d1240673769/article/details/75907152 - Fiddler抓包微信客户端(重点要来了),是的这是目前为止最符合我需求的渠道了,貌似也只有微信客户端有点赞,阅读量了。
另起一行,首先呢你得下载个Fiddler,以及配置Fiddler,下载链接:https://www.telerik/download/fiddler
安装好后点击菜单栏的Tool->Options设置一波,差不多下面的样子吧:
然后好像还需要装一个该死的证书。微信的接口都是https,不装是抓不到数据的,具体方法我忘了,有时间想起来了再贴进去,应该不难。配好后你会看到很多奇奇怪怪的请求,是的fiddler已经在工作了,可是链接太多了看的眼花缭乱的,这时候我们需要过滤掉一些没用的信息,像这样:
Ok,这一步终于结束了。
下来就是和微信有关的东西了,首先手机电脑端微信都可以抓,方便起见,用win10微信客户端为例。打开微信扫码登录,麻溜的进入公众号随便点开一片文章,此时你的fiddler应该是打开的状态,那么你会看到一些mp.weixin.qq的https请求,如下所示:
那么恭喜你,你成功抓到了数据,否则那就什么都没有。
随意点开一个请求,如下:
这特么不就是文章内容么,对应网页版的也是一样的,可以可以
再随意点开一个请求,如下:
等等右下角的红框内容怎么看起来这么带感呢,稍微有点常识的人应该都知道那是干嘛的,没错就是点赞数和阅读量,右上角对应的就是请求头了,哈哈哈得来全不费功夫。不过这特喵的请求url带的参数够多的:https://mp.weixin.qq/mp/getappmsgext?f=json&mock=&uin=此处隐去敏感参数&key=f650c66250eec4fa16c59b57c5613a692ca9a75e81981e42292f2aafa4f2319a27d5c1010ecf9476ad76b8344d04bd178959a104065b590f7c2db4db499e543b17bbf858f8cbfe47380c9dbf47379d96&pass_ticket=xfXgqWYeNMqkpNmJpDKnvOlwbhiK1awDIt8SE6zeEg4LaVRqI1EfXw5duVmaMTXh&wxtoken=777&devicetype=Windows%26nbsp%3B10&clientversion=62060426&appmsg_token=983_%2BFff6DaA8iICxlfUzTIONkPmo8q7rNq4a95vDjisWwnLS3GeykhsOV77bwcUnQiOj7atgEfCjOmxL6Us&x5=0&f=json
后面还有一堆就不贴了,不过也别着急,这么长的参数肯定一大堆用不着的。果然在我多次尝试下找到了点赞阅读量接口的必要参数:
uni:用户唯一识别码,固定值
key:随机秘钥(10-30分钟的样子,好像不定长)
__biz :公众号唯一识别码,固定值
mid:可能是发布日期,固定值
sn:文章识别码,固定值
下面的参数就是固定的了,但是也是需要带的
综上所述,唯一变动的就是key了,这个key很头疼,网页版js找遍了没找到有关联的值,应该是微信客户端内置的加密方式,目前我还没找到破解的方法。好在这个key有相对较长的时间,抓小量数据足够了
那么我们就来构造这个请求,发现确实可以获取到json格式的数据,那就好办了。示例:
{
"advertisement_info": [],
"appmsgstat": {
"show": true,
"is_login": true,
"liked": false,
"read_num": 2853,
"like_num": 14,
"ret": 0,
"real_read_num": 0
},
"reward_head_imgs": [],
"base_resp": {
"wxtoken": 777
}
}
接着只需要整合到代码里去就行了,代码下次更新放出来。到这里基本分析结束,也下班啦!
版权声明:本文标题:【分享】如何用Pytho抓取微信公众号文章(包括阅读数,点赞数) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726379083h948603.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论