吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9155|回复: 59
收起左侧

[其他转载] Fiddler抓取PC版微信公众所有文章数据的分析(多图)

  [复制链接]
ingdear 发表于 2022-6-9 10:58
本帖最后由 ingdear 于 2022-8-20 09:33 编辑

  • 前言
    ——————————————————————————————————————————————————
    由于新版本微信已经显示文章列表的功能,这里使用的还是微信2.9.5版本(文章后面有提供)
    工作环境为:virtual box虚拟机+WIN10 LTSC+微信2.9.5+Fiddler4 v5.0.20204.45441,虚拟机没有安装其它软件
    Fiddler需要开启支持HTTPS
    如果本文内容及使用的样例有不合规定之处,麻烦版主删贴(也不知道有没发错版块,找了下不知道发哪个版块合适)。

    QQ图片20220608143329.png QQ图片20220608143515.png
    QQ图片20220608144448.png QQ图片20220608161903.png

  • 操作目的
    ——————————————————————————————————————————————————
    主要是分析微信的文章列表获取方式,找出规律,然后实现获取指定的参数变量,来实现读取一个公众号下的所有文章

  • 抓包
    ————————————————————————————————————————————
    先登录微信,然后找到文章历史记录位置,如下图:(这里以 吾爱破解论坛 公众号为例)

    1.png

    按上步骤进入公众号后,在下图2位置就是所有文章列表位置

    2.png

    打开Fiddler软件,然后再点击上图2的查看历史消息,然后向下翻页文章,等文章加载过两三次后就可以了。

    1.gif

    加载多页后,能看到多个带有action=getmsg参数的地址,这些就是返回的文章信息,是JSON格式

    5.png

    把多个地址提取出来能发现,同一次同一公众号,多页列表只存在offset这个参数不同,其它参数都一样
    而且offset能看到第一次翻页是10,第二次翻页是20,第三次是30,类推
    从这里能发现,offset应该就是从新到旧的第几篇文章,从0开始

    6.png

    尝试拿其中的地址直接在另外一台没有登录微信的电脑上用浏览器打开,发现是能打开并且得到返回的JSON数据
    也就是只需要参数对了,哪里都能打开并且返回数据

    8.png

    general_msg_list这个里面的数据把前后的 " 去掉,然后把 \" 替换成 " ,剩下的数据就是文章列表内容,解析后如下

    15.png

    还有一些其它参数具体查看JSON里对应的内容
    上面基本上把一次的信息简要的分析了,接下来就是解决列表哪些参数是需要的,有效时间等问题。

  • 提取参数
    ——————————————————————————————————————————————
    https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&__biz={公众号编号}&f=json&offset={offset}&count=10&is_ok=1&scene=124&uin={访问者编号}&key={key}&pass_ticket={
    pass_ticket}&wxtoken=&appmsg_token={appmsg_token}&x5=0&f=json
    从上面分析能得出获取文章列表的url地址,其中
    标红的每次访问时获取的参数,半小时有效
    标蓝的为固定,同一公众号固定,同一访问者固定
    标粉的为页面数,从0开始,一次10篇;第一页为0,第二页为10,第三页为20,类推

    说明:offset里的一篇指的是一次推送,一次推送里可以是一篇文章也可以是多篇文章。

    在获取到了一次的链接后,提取出
    {公众号编号}、{访问者编号}、{key}、{pass_ticket}、{appmsg_token},然后只需要在链接里修改{offset},就能达到读取所有的文章。
    还是以
    吾爱破解论坛 为例,通过修改offset,把最开始发布的文件找出来。
    经过多次测试,确定893为最开始的一篇文章,894就没有文章了

    12.png

    13.png

  • 新版本怎么操作
    ————————————————————————————————————————————————————————

    上面使用的都是旧版本,一般使用中也没人特意一直用旧版本,那在新版本中如何处理?新版本已经没有那个查看历史消息的功能。
    根据前面获取到的列表访问地址:

    https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&__biz={公众号编号}&f=json&offset={offset}&count=10&is_ok=1&scene=124&uin={访问者编号}&key={key}&pass_ticket={pass_ticket}&wxtoken=&appmsg_token={appmsg_token}&x5=0&f=json
    那就是只需要获取到上面的参数,自然就可以直接使用地址替换参数了。

    还是打开Fiddler,然后打开需要获取参数的公众号中的任意一篇文章访问,等文章访问完了,搜索:_biz、uin、key、pass_ticket、appmsg_token,就能获取到对应的参数,然后替换链接里对应信息,放到浏览器里试试,发现是能打开的,那么就完美解决了新版本没有历史记录的问题了。

    16.png

    在浏览器中浏览效果

    17.png


  • 错误及其它
    ——————————————————————————————————————————————————
    参数
    {key}、{pass_ticket}、{appmsg_token}的有效时间为从获取开始30分钟,那失效了会显示什么?

    10.png

    如果出现errmsg返回no session就表示参数过期了,需要重新替换参数
    {key}、{pass_ticket}、{appmsg_token}


    帖子写得有点乱,都是简单的分析。
    至于分析出来后,能用来做什么,好像用处不大,最多就是用来下载某公众号的所有文件进行保存。


    ————————————————————————————————————————————————————————
    微信2.9.5安装包,超过100M了,只能使用百度云了
    链接: https://pan.baidu.com/s/1ZLbviKcpTr6C-qetpOWJ_w?pwd=hg85 提取码: hg85





以下为广告帖:    2022/08/20


微信公众号文章下载器,用于下载微信公众号的所有文章
https://www.52pojie.cn/thread-1651719-1-1.html
(出处: 吾爱破解论坛)


免费评分

参与人数 12吾爱币 +17 热心值 +10 收起 理由
corebox + 1 + 1 总结的很好
Naive2021 + 1 + 1 谢谢@Thanks!
Pandolar + 3 + 1 热心回复!
pkhtml + 1 用心讨论,共获提升!
话痨司机啊 + 1 + 1 点赞点赞,要是能分析出key pass_ticket和apptoken获取方式就好了
bingju4316 + 1 用心讨论,共获提升!
qq02463 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
My13 + 1 + 1 我很赞同!
默默看着你 + 2 + 1 我很赞同!
506874511 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
诗和远方代言人 + 1 + 1 用心讨论,共获提升!
文西思密达 + 3 + 1 帖子很详细,非常棒,值得学习

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

话痨司机啊 发表于 2022-6-30 09:08
本帖最后由 话痨司机啊 于 2022-6-30 09:47 编辑
ingdear 发表于 2022-6-29 17:04
这公众号这么多文章,抓了1万文章记录了。
我明天试下看会不会出现这个错误。

确实有点多,我只要我需要 的部分文章里的音频。。。,其他的文章链接和标题我就入库了,文章链接固定,到时候用啥直接在数据库里拿,可能前天我测试的时候爬数据没设置访问频率我的uin,biz被服务器屏蔽了吧,旧接口跟新接口不一样,所以我用新的微信一样可以往下拉获取历史记录,估计旧微信就会报错,今天测试可以下载了。
Snipaste_2022-06-30_09-40-01.png
刘涛 发表于 2022-6-9 11:07
祈愿啊 发表于 2022-6-9 11:08
zucker 发表于 2022-6-9 11:14
为什么要用虚拟机
nbwww 发表于 2022-6-9 11:15
感谢大佬的分析讲解  学习了
 楼主| ingdear 发表于 2022-6-9 11:18
zucker 发表于 2022-6-9 11:14
为什么要用虚拟机

因为分析的时候需要微信旧版本,本机安装的是新版本,不想卸载重装,就使用了虚拟机操作。
白纸挥墨 发表于 2022-6-9 11:22
66666666
Dearc 发表于 2022-6-9 13:40
支持一下  大佬说的好圣奥
liangqz 发表于 2022-6-9 13:49
666666666
随梦期初 发表于 2022-6-9 14:29
厉害了,学习使我快乐
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-4 00:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表