码迷,mamicode.com
首页 > 微信 > 详细

Fiddler微信公众号列表、浏览/查看量、评论数据抓取

时间:2019-10-15 00:22:47      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:http请求   blog   images   form   ref   gem   链接   发布   title   

按之前的文章我们已经可以获取app及网页的https/http请求的json数据:
https://www.cnblogs.com/i-love-python/p/11505669.html

在此基础上可对微信公众号文章数据进行抓取。
包括列表、浏览查看量、评论数据。

列表数据:

列表数据获取

列表为每个公众号历史数据入口,如图红框中的2部分。
技术图片

列表数据可通过Fiddler在微信PC客户端获取,获取的数据是json数据里面包含了文章标题,发布时间等信息。

技术图片
这个列表信息是一个类似下面url的GET请求,该链接具有时效性,不过我们也可以更改其中的参数在有效时间内将列表数据抓取完,从fiddler中copy你的url后只需修改参数offset 从0 开始进行以此增加10即可。

https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&uin=Mjk0NjUyMDAxOA==&key=cc53f48e7cf7aa7ee97e6502e364529020d90d2dd6007000ab49617cc3fa2ad66ae709dd9b97b832411c03c6ed45b7670ca505fef6db4e9dd5bb89561a91086559ca9af84d45c0a282b8b6f1c5e25de3&pass_ticket=y5W0nBEs90w2+Q4IBMmR9Ac+nUr7wU3n2gnY4HozBUJaTy1pIPxM2Lpz60Bhv3Fe&username=&useraction=9&t=0.35340455407091587&scene=124&__biz=MzI5MTE1MTAxNg==&is_ok=1&fromplatform=2&f=json&offset=0&count=10

列表数据解析

json数据 general_msg_list的值为字符串 这是可通过json.loads()转换 得到的list即为列表数据。
数据中最重要的四个字段如下:
datetime:文章发布时间的时间戳
fakeid:公众号的fakeid 可对应到属于哪个公众号
title:文章的标题
content_url:正文的永久url链接(该GET链接不会失效可通过浏览器打开)
技术图片

正文数据

正文内容数据的获取比较简单,浏览器打开上面的content_url永久链接,所以可通过网页爬虫系统进行解析,requests打开获取里面文本P标签也可。

浏览查看量、评论内容:

浏览查看量及评论的内容在手机端进行抓取。从列表页点击到正文页时fiddler中可以获取浏览量及评论内容对应的json请求。
历史数据很多我们不可能人工每个数据进行点击,这时我们就可以使用按键精灵这种第三方软件模拟点击
2个请求连接如下,具有时效性。

浏览、在看量POST请求:
https://mp.weixin.qq.com/mp/getappmsgext?f=json&mock=&uin=Mjk0NjUyMDAxOA%253D%253D&key=bd7df0327aba25f5efd11ee483618f49fbf2877dae17100330b8e7505b4f4edb069a00887127db8b641c3b9d58138c4080ae90056915673989c85037d943ccdaef473572b5a74a6d1ebc4cdacd8fcc03&pass_ticket=y5W0nBEs90w2%25252BQ4IBMmR9Ac%25252BnUr7wU3n2gnY4HozBUJaTy1pIPxM2Lpz60Bhv3Fe&wxtoken=777&devicetype=Windows%26nbsp%3B7&clientversion=62070141&__biz=MzI5MTE1MTAxNg%3D%3D&appmsg_token=1030_80FpOzQ4N34ooINO01C5KuGfD4amgFIQ_iZa6sKOTQroJYHuCZGQsMA-PJafRSuDFd4Vj89fkAJZ4F3Y&x5=0&f=json


评论内容GET:
https://mp.weixin.qq.com/mp/appmsg_comment?action=getcomment&scene=0&__biz=MzI5MTE1MTAxNg==&appmsgid=2650402689&idx=1&comment_id=1029375583785992192&offset=0&limit=100&uin=Mjk0NjUyMDAxOA%253D%253D&key=bd7df0327aba25f5efd11ee483618f49fbf2877dae17100330b8e7505b4f4edb069a00887127db8b641c3b9d58138c4080ae90056915673989c85037d943ccdaef473572b5a74a6d1ebc4cdacd8fcc03&pass_ticket=y5W0nBEs90w2%25252BQ4IBMmR9Ac%25252BnUr7wU3n2gnY4HozBUJaTy1pIPxM2Lpz60Bhv3Fe&wxtoken=777&devicetype=Windows%26nbsp%3B7&clientversion=62070141&__biz=MzI5MTE1MTAxNg%3D%3D&appmsg_token=1030_80FpOzQ4N34ooINO01C5KuGfD4amgFIQ_iZa6sKOTQroJYHuCZGQsMA-PJafRSuDFd4Vj89fkAJZ4F3Y&x5=0&f=json

技术图片

技术图片

列表、正文、浏览量数据关联

三者的数据可通过字段sn进行关联
列表数据的sn在content_url中
正文数据的sn在其url中
浏览量数据sn在其请求的request body中

和评论利用正文中的mid和评论中的appmsgid关联

总结:

微信公众号数据的获取需手机和pc结合进行抓取,参数很多如果单纯分析参数结构仿造请求获取数据的难度很大,并且如果一旦接口参数变换又得重新分析。
所以利用Fiddler直接获取json数据的方式是一种简单且长久的方法,因为我们不用关心登录认证的问题 只需降低抓取频率便不会被封号。缺点:按键精灵模拟点击有时出错

Fiddler微信公众号列表、浏览/查看量、评论数据抓取

标签:http请求   blog   images   form   ref   gem   链接   发布   title   

原文地址:https://www.cnblogs.com/i-love-python/p/11674621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!