【基础】【Python网络爬虫】【12.App抓包】reqable 安装与配置(附大量案例代码)(建议收藏)
Python网络爬虫基础
- App抓包
- 1. App爬虫原理
- 2. reqable 的安装与配置
- reqable 安装教程
- reqable 的配置
- 3. 模拟器的安装与配置
- 夜神模拟器的安装
- 夜神模拟器的配置
- 配置代理
- 配置证书
- 4. 内联调试及注意事项
- 软件启动顺
- 开启抓包功
- reqable面板功
- 列表部件功能
- 列表数据
- 快捷操作栏
- 夜神模拟器设置
- 注意事项
- 系统浏览器会显示证书安全警告
- 安装App应用
- 案例练习
App抓包
1. App爬虫原理
Application(以下称App)主要指安装在智能手机上的应用程序。APP 运行在相应的操作系统上,如苹果公司的 iOS 系统或谷歌公司的 Android 系统。
App 和网站都是 Web 应用,它们与服务器通信时使用的协议是相同的。
与网站不同的是,App 的网络传输和数据收发相对隐蔽,用户既无法直接查看客户端发出的请求信息和服务器端返回的响应内容,也无法直接查看 App 的代码。
为了能像使用浏览器开发者工具一样对APP数据进行抓包,就必须先要一个能够对app数据进行抓取的开发者工具。
2. reqable 的安装与配置
reqable
是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的所有 请求,可以针对特定的请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
看到这么多的应用,是不是就迫不及待的想要开始你的抓包之旅呢,不要急,俗话说的好:工欲善其事,必先利其器,我们先来安装reqable吧。
官网下载地址:
https://reqable.com/
reqable 安装教程
安装教程如下:
双击安装包,如下所示,选择想要存放的目录,如果不需要修改,使用默认的即可,然后点击Next:
会出现以下界面,继续点击 Next
点击Install,等待几秒即可安装
安装后双击运行,如下所示到这里我们就初步安装成功了
reqable 的配置
如果想要对手机上的app进行抓包怎么办呢,那么你还需要进行以下操作:
首先你的reqable所在的电脑和手机必须处在同一个局域网内(即连着同一个路由器)。
其次需要修改reqable监听的ip和端口号,如下所示:
终端 ipconfig 查看IP地址
- 这个ip和端口号就是手机app设置的代理,后续在手机端我们会设置
最后就是需要配置证书,没有证书就会导致手机没网络。配置证书在本教程中需要配置到模拟器,后续在配置模拟器的再详细介绍。证书配置的教程在reqable中也有教程,如下所示:
3. 模拟器的安装与配置
为了能像使用浏览器开发者工具一样对APP数据进行抓包,就必须要一个能运行APP的环境。目前主流的是使用模拟器进行抓包,原因有以下几点:
- Android8.0 以上安卓系统有些数据抓取不到
- 虚拟机环境配置相对简单,容易root之后获取更高的权限
当然也可以选择使用真机进行调试。但是实际采用真机会有很多不必要的麻烦,必须重做系统、获取root权限多多少少会影响到正常的使用,如果专门购买一个真机专门用于app调试,也免不了要多踩很多坑(国内的厂商都有自己的优化,并且手机型号、系统版本等等都会影响到调试)。
夜神模拟器的安装
官网下载地址:https://www.yeshen.com/
双击安装包,选择安装路径,点击安装即可:
夜神模拟器的配置
配置代理
工具中找到设置,在设置页面下拉找到WLAN点击
长按WiredSSID,选择修改网络
点击高级选项下拉框
代理模式选择手动,填写代理服务器主机名和代理服务器端口,点击保存
注意:
reqable中显示监听的ip和端口是什么,那么在这里就填写什么
配置证书
在reqable中,找到证书安装中的Android,复制证书下载地址
将复制的证书地址,在模拟器中的浏览器打开下载证书并且安装
- 打开浏览器会提示证书安全警告,大家可以点击继续,直到警告提示框消失为止
在地址导航栏粘贴之前复制过来的证书下载地址 : http://reqable.proxy/ssl
拖动导航栏,点击下载好的证书安装
证书命名,任意名字都行,比如咱们这里取名 reqable
设置锁屏密码
设置锁屏通知,随便选,设置好后即可配置好证书
4. 内联调试及注意事项
软件启动顺
因为在模拟器中配置了代理服务器主机名和代理服务器端口,对应的就是reqable监听的ip和端口,所有的模拟器网关都会走这里。因此当我们单独启动模拟器的时候是没有网络的。
所以每次软件的启动的顺序如下,这样启动模拟器才会有网络:
- 先打开reqable
- 再打开夜神模拟器
开启抓包功
如果reqable需要抓取模拟器的请求,需要在软件界面启动抓包功能,如下所示:
但是如果直接这样启动会抓取到很多系统代理,我们不需要分析这类系统代理请求,可以关闭此功能,如下所示:
reqable面板功
完整的面板功能介绍请参考官方文档:http://reqable.com/docs/overview
列表部件功能
列表数据
选中一个列表项,双击可以打开详情:
快捷操作栏
夜神模拟器设置
注意事项
系统浏览器会显示证书安全警告
证书在模拟器配置好以后在系统浏览器请求页面任然会提示证书安全警告,此现象仅出现在系统浏览器应用中,可以安装其他浏览器App,那么就不会有此类警告弹出。
安装App应用
系统应用无法安装App应用,如需安装可以在豌豆荚下载App应用安装包
豌豆荚官网地址:https://www.wandoujia.com/
选择普通下载
下载的文件尾缀是apk,此格式也是安卓应用安装包格式
将下载的apk安装包拖入到模拟器即可安装应用
案例练习
import csv
import requestsurl = 'http://mapi7.dangdang.com/index.php?page_version=new2&access-token=&time_code=38a2af8629a8657119656d2e6a4ec9cc&img_size=e&client_version=10.12.4&pageSize=10&union_id=537-100998×tamp=1689771977&province_id=111&permanent_id=20230719210103107521432505121491489&a=all-search&global_province_id=111&page_action=search&c=search&sort_type=default_0&keyword=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C&udid=1ac073189a158030f2c050f1bcf23f27&user_client=android&page=1'
# url = 'http://mapi7.dangdang.com/index.php?passback=c5e4133e68646b00c9dfb764fe0100009e44c800c9dfb764&page_version=new2&access-token=&time_code=ef9523739c8dd3da26e8c9faa25a6ed8&img_size=e&client_version=10.12.4&pageSize=10&union_id=537-100998×tamp=1689772443&province_id=111&permanent_id=20230719210103107521432505121491489&a=all-search&global_province_id=111&page_action=search&isKeepTrace=1&c=search&sort_type=default_0&keyword=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C&udid=1ac073189a158030f2c050f1bcf23f27&user_client=android&page=2'
headers = {'Content-type': 'application/json','User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; SM-G988N Build/NRD90M)','Host': 'mapi7.dangdang.com','Connection': 'Keep-Alive','Accept-Encoding': 'gzip',
}response = requests.get(url=url, headers=headers)
json_data = response.json()
# print(json_data)# 数据提取
data_list = json_data['data']['product']for data in data_list:productName = data.get('productName') # 书名"""数据包中包含了 '为您推荐' 和 '您是不是想找' 类目的数据, 可以通过判断逻辑过滤掉"""if not productName: # 如果productName没数据就跳过这次循环print(None)continueauthor = data.get('author') # 作者price = data.get('price') # 价格commentCount = data.get('commentCount') # 评价数量goodCommentRate = data.get('goodCommentRate') # 好评率print(productName, author, price, commentCount, goodCommentRate, sep=' | ')with open('当当.csv', mode='a', encoding='utf-8', newline='') as f:csv_write = csv.writer(f)csv_write.writerow([productName, author, price, commentCount, goodCommentRate])"""
说明:1. 模拟器安装app有的会检测应用环境- root -其他环境2. app请求的数据会被加密 js加密 安卓加密 --> 安卓逆向java 汇编语言(c++) 算法<app会加壳> 各种逆向工具的使用开发是正向3. 有的app会检测证书, 安卓逆向wx, 代理走的自定义代理协议, 逆向wx
"""
相关文章:

【基础】【Python网络爬虫】【12.App抓包】reqable 安装与配置(附大量案例代码)(建议收藏)
Python网络爬虫基础 App抓包1. App爬虫原理2. reqable 的安装与配置reqable 安装教程reqable 的配置 3. 模拟器的安装与配置夜神模拟器的安装夜神模拟器的配置配置代理配置证书 4. 内联调试及注意事项软件启动顺开启抓包功reqable面板功列表部件功能列表数据快捷操作栏 夜神模拟…...

LabVIEW在电机噪声与振动探测的应用
LabVIEW在电机噪声与振动探测的应用 硬件部分是电机噪声和振动测试分析系统的基础,主要由三大核心组件构成:高灵敏度振动传感器、先进的信号调理电路和高性能数据采集卡。这些设备协同工作,确保了从电机捕获的噪声和振动信号的准确性和可靠性…...
编码器是什么,以光电编码器为例,说明一下光电编码器的名字由来,结构,原理,特点,用处
问题描述: 问题解答: 定义:编码器是一种测量角度、位置、速度等物理量的传感器,它可以将物理量转换成电信号,以便计算机或控制系统进行处理和控制。编码器通常由码盘和光电转换器组成,码盘上刻有若干条码道…...
MySQL:主从复制
准备两台服务器:安装好mysql mysql1:192.168.2.222 master mysql2:192.168.2.226 slave 1、主从服务器分别作以下 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码 2、修改主服务器master #vi /etc/my…...

【K8S 二进制部署】部署Kurbernetes的网络组件、高可用集群、相关工具
目录 一、K8S的网络类型: 1、K8S中的通信模式: 1.1、、pod内部之间容器与容器之间的通信 1.2、同一个node节点之内,不同pod之间的通信方式: 1.3、不同node节点上的pod之间是如何通信的呢? 2、网络插件一ÿ…...
Ubuntu 常用命令之 locate 命令用法介绍
🔥Linux/Ubuntu 常用命令归类整理 locate命令是在Ubuntu系统下用于查找文件或目录的命令。它使用一个预先构建的数据库(通常由updatedb命令创建)来查找文件或目录,因此它的查找速度非常快。 plocate 安装 locate 不是 Ubuntu 系统的原生命令/功能,要想在 Ubuntu 系统中…...
java中file类常用方法举例说明
java中file类常用方法举例说明 当使用 java.io.File 类时,以下是一些常用方法的举例说明: 创建文件或目录: // 使用路径名创建File实例 File file new File("C:\\Users\\UserName\\Documents\\example.txt");// 使用父路径和子路…...

机器学习分类模型
机器学习常见分类模型及特点 机器学习常见分类模型优缺点 决策树模型 决策树(Decision Tree)是一类常见的机器学习方法,可应用于分类与回归任务,这里主要讨论分类决策树。决策树是基于树结构来进行决策的。下图是使用决策树来决定…...
LaTeX符号大全:打破排版的边界
LaTeX符号大全:打破排版的边界 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们一起探索一门极富表现力的排版艺术——LaTeX&…...

vue3-11
后端Java代码 src\router\a6router.ts文件 import { createRouter, createWebHashHistory } from vue-router import { useStorage } from vueuse/core import { Menu, Route } from ../model/Model8080 const clientRoutes [{path: /login,name: login,component: () > …...

【c语言】飞机大战2
1.优化边界问题 之前视频中当使用drawAlpha函数时,是为了去除飞机后面变透明,当时当飞机到达边界的时候,会出现异常退出,这是因为drawAlpha函数不稳定,昨天试过制作掩码图,下载了一个ps,改的话,…...

海康visionmaster-渲染控件:渲染控件加载本地图像的方法
描述 环境:VM4.0.0 VS2015 及以上 现象:渲染控件如何显示本地图像? 解答 思路:在 2.3.1 中,可以通过绑定流程或者模块来显示图像和渲染效果。因此,第一步, 可以使用在 VM 软件平台中给图像源模…...

【SD】一致性角色 - 同一人物 不同姿势 - 2
首先生成4张不同姿势的图片 masterpiece,high quality,(white background:1.6),(simple background:1.4),1gril,solo,black footwear,black hair,brown eyes,closed mouth,full body,glasses,jacket,long hair,long sleeves,lookig at viewer,plaid,plaid skirt,pleated shirt,…...

摩尔线程S80对于软件的支持
摩尔线程对软件的支持 时间:2024年1月1日 显卡型号:MTT S80 主板型号:七彩虹 igame z590 火神 V20 CPU: intel core i5 10400f 内存: 海盗船3600 16*2 存储: 致态1Tb nvme 显卡的驱动是最新的。 游戏 S…...

基数排序 RadixSort
基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数 . 动态演示 :…...

Maven下载和安装的详细教程
文章目录 一、Maven下载和安装1.1 下载 Maven1.2 配置环境变量 参考资料 一、Maven下载和安装 1.1 下载 Maven 打开 Maven 的官方网站Maven – Download Apache Maven,下载最新版本的 Maven 在可选择的版本中,不同版本的区别在于: binary是已经编译过的…...

申请虚拟VISA卡Fomepay教程
fomepay 用下面的注册链接直达 https://gpt.fomepay.com/#/pages/login/index?dS21BA1 或者扫描下面图片的二维码直达注册 注册后尽量随用随充值不建议放大量现金在里面。...
java常见面试题:什么是装箱和拆箱?装箱和拆箱有哪些应用场景
装箱和拆箱是计算机科学中常用的术语,主要用于描述将数据从一种类型转换为另一种类型的操作。 装箱是将值类型转换为引用类型的过程。在装箱时,需要了解编译器内部的操作。首先,在托管堆中分配好内存,分配的内存量是值类型的各个…...

【map】【滑动窗口】【字典树】C++算法:最长合法子字符串的长度
作者推荐 动态规划 多源路径 字典树 LeetCode2977:转换字符串的最小成本 本文涉及的基础知识点 C算法:滑动窗口总结 字典树 map 离线查询 map map可以分成有序(单调)map和无序(哈希)map。还可分成单键map和多键map(允许重复的键)。本文用…...

机器学习部分相关概念
数据集(Data Set)即数据的集合,每一条单独的数据被称为样本(Sample)。 对于每个样本,它通常具有一些属性(Attribute)或者特征(Feature), 特征所具体取得值被称为特征值(Feature Value)。 西瓜数据集 色泽根蒂纹理青绿稍蜷模糊乌黑蜷缩清晰 …...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...