Python Fiddler抓包工具教学,获取公众号(pc客户端)数据

article/2024/3/2 11:47:43

前言

今天来教大家如何使用Fiddler抓包工具,获取公众号(PC客户端)的数据。
Fiddler是位于客户端和服务器端的HTTP代理,是目前最常用的http抓包工具之一。

开发环境

  • python 3.8 运行代码
  • pycharm 2021.2 辅助敲代码
  • requests 第三方模块
  • Fiddler 汉化版 抓包的工具
  • 微信PC端

如何抓包

配置Fiddler环境

先打开Fiddler,选择工具,再选选项

选项窗口里点击HTTPS,把勾选框都勾选上

选项窗口里点击链接,把勾选框都勾选上,然后点击确定即可

我们还需要在客户端把网络代理开启
地址:127.0.0.1
端口:8888

抓包

先登录,然后清空Fiddler里的数据,在选到你想要的公众号内容

出现数据包后,点开,再选择Raw,里面的就是请求的具体信息

先访问到列表页,获取所有的详情页链接

请求头

headers = {'Host': 'mp.weixin.qq.com','Connection': 'keep-alive','User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63090016)','X-Requested-With': 'XMLHttpRequest','Accept': '*/*','Cookie': 'wxuin=2408215323; lang=zh_CN; devicetype=android-29; version=28002037; pass_ticket=f85UL5Wi11mqpsvuWgLUECYkDoL2apJ045mJw9lzhCjUteAxd4jM8PtaJCM0nBXrQEGU9D7ulLGrXpSummoA==; wap_sid2=CJvmqfwIEooBeV9IR29XUTB2eERtakNSbzVvSkhaRHdMak9UMS1MRmg4TGlaMjhjbTkwcks1Q2E2bWZ1cndhUmdITUZUZ0pwU2VJcU51ZWRDLWpZbml2VkF5WkhaU0NNaDQyQ1RDVS1GZ05mellFR0R5UVY2X215bXZhUUV0NVlJMVRPbXFfZGQ1ZnVvMFNBQUF+MPz0/50GOA1AlU4=','Sec-Fetch-Site': 'same-origin','Sec-Fetch-Mode': 'cors','Sec-Fetch-Dest': 'empty','Referer': 'https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=Mzg3Nzc2OTQzOA==&uin=MjQwODIxNTMyMw%3D%3D&key=2ed1dc903dceac3d9a380beec8d46a84995a555d7c7eb7b793a3cc4c0d32bc588e1b6df9da9fa1a258cb0db4251dd36eda6029ad4831c4d57f6033928bb9c64c12b8e759cf0649f65e4ef30753ff3092a2a4146a008df311c110d0b6f867ab173792368baa9aaf28a514230946431480cc6b171071a9f9a1cd52f7c07a751925&devicetype=Windows+10+x64&version=63090016&lang=zh_CN&a8scene=7&session_us=gh_676b5a39fe6e&acctmode=0&pass_ticket=f85UL5Wi11%2BmqpsvuW%2BgLUECYkDoL2apJ045mJw9lzhCjUteAxd4jM8PtaJCM0nBXrQEGU9D7ulLGrXpSummoA%3D%3D&wx_header=1&fontgear=2','Accept-Encoding': 'gzip, deflate, br','Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
}

发送请求

url = f'https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&__biz=Mzg3Nzc2OTQzOA==&f=json&offset=10&count=10&is_ok=1&scene=&uin=MjQwODIxNTMyMw%3D%3D&key=3e8646dd303f109219f39517773e368d92e1975e6972ccf5d1479758d37ecec3e55bc3cb1bb5606d79ec76073ab58e4019ee720c31c2b36fafa9fe891e7afb1e22809e5db3cd8890ab35a570ffb680d16617ac3049d6627e61ffdf3305e4575666e30ad80a57b14555aa6c5a3a0fb0001a6d5d2cd76fd8af116a086ce9ef2c8e&pass_ticket=f85UL5Wi11%2BmqpsvuW%2BgLUECYkDoL2apJ045mJw9lzjmzvDbqI6V6Y%2FkXeYCZ7WsuMSqko7EWesSKLrDKnJ96A%3D%3D&wxtoken=&appmsg_token=1200_VUCOfHI2jYSEziPbaYFlHoaB7977BJYsAb5cvQ~~&x5=0&f=json'
response = requests.get(url=url, headers=headers, verify=False)

解析

general_msg = response.json()['general_msg_list']
general_msg_list = json.loads(general_msg)
for general in general_msg_list['list']:content_url = general['app_msg_ext_info']['content_url']print(content_url)

再访问所有详情页链接,获取需要的图片内容

发送请求

html_data = requests.get(url=content_url, headers=headers, verify=False).text

解析数据

img_list = re.findall('<img class=".*?data-src="(.*?)"', html_data)
print(img_list)

保存数据

for img in img_list:img_data = requests.get(url=img, verify=False).contentopen(f'img/{index}.jpg', mode='wb').write(img_data)index += 1

http://www.ngui.cc/article/show-861231.html

相关文章

HTTP 框架 Hertz 初体验

目录版本预配置安装 Golang环境配置安装命令行工具 hz生成/编写示例代码运行示例代码引用附加资料注脚版本预配置 VMware 配置 CentOS 7 64位,参考 链接Golang 下载 go1.17.linux-amd64.tar.gz PS : 不要下载 go 1.20 的新版本,因为有些东西暂不支持会报错1 安装 Golang 将 …

PCI驱动程序框架

PCI驱动程序框架 文章目录PCI驱动程序框架参考资料&#xff1a;一、 PCI驱动框架二、 RK3399驱动致谢参考资料&#xff1a; 《PCI Express Technology 3.0》&#xff0c;Mike Jackson, Ravi Budruk; MindShare, Inc.《PCIe扫盲系列博文》&#xff0c;作者Felix&#xff0c;这是…

shell 脚本编程 九:总结

一、特别说明 Shell 是弱类型的语言&#xff0c;在 Shell 中所有的变量默认都是字符串型。 二、数据类型 1、字符串&#xff1a;字符串可以用单引号&#xff0c;也可以用双引号&#xff0c;也可以不用引号&#xff08;建议使用双引号&#xff0c;因为双引号里可以有变量和特…

LeetCode每日一题(332. Reconstruct Itinerary)

You are given a list of airline tickets where tickets[i] [fromi, toi] represent the departure and the arrival airports of one flight. Reconstruct the itinerary in order and return it. All of the tickets belong to a man who departs from “JFK”, thus, the…

LeetCode 刷题系列 -- 124. 二叉树中的最大路径和

路径 被定义为一条从树中任意节点出发&#xff0c;沿父节点-子节点连接&#xff0c;达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root &…

提名倒计时! | 2022 龙蜥社区优秀贡献者

各位盆友们&#xff1a;2022 年&#xff0c;那些为龙蜥壮大做出杰出贡献的人们&#xff0c;包括开源背后的推动者、组织者、布道者、代码贡献者&#xff0c;让我们看到了热爱技术的力量&#xff01;为此社区推出「2022 龙蜥社区优秀贡献者」活动。截至目前&#xff0c;距离报名…

windows 休眠后风扇狂转的解决方法

windows 休眠后风扇狂转的解决方法 问题描述&#xff1a; 在Windows电脑接入usb设备后进入休眠状态时&#xff0c;风扇立刻最大功率运行&#xff0c;在拔出usb/唤醒电脑后风扇会恢复正常。 解决方法&#xff1a; 使用powercfg 查询唤醒电脑的设备&#xff0c;然后移除此设备…

C语言基础知识(56)

下面的C程序的输出是什么#include<stdio.h>intmain(){int a 0;while(a <printf("HI")){a;}return0;}该代码将打印 3 次HI。 printf()函数将返回它正在打印的字符数&#xff0c;并将其与a进行比较。 由于 printf() 的返回值为 2&#xff0c;HI 将被打印 2 次…

2023-02-04 Elasticsearch环境安装

1 JDK-8的安装 查询资料自我安装即可&#xff0c;这里不做展示。 2 Elasticsearch 的安装 Elasticsearch目录结构: 配置文件&#xff1a; #节点名称&#xff0c;集群内要唯一 node.name: node-1001node.master: true node.data: true#ip 地址 network.host: localhost htt…

IDEA插件开发入门.01

环境准备Idea插件SDK文档在线地址&#xff1a;https://plugins.jetbrains.com/docs/intellij/welcome.html安装IntelliJ IDEA&#xff0c;这里使用版本2020.1.3 X64IDEA中安装Plugin DevKit插件创建插件项目新建工程。File ->New -> Project选择工程类型&#xff0c;Inte…