【基础】【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&timestamp=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&timestamp=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
"""

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/590636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF+Halcon 培训项目实战 完结(13):HS 鼠标绘制图形

文章目录 前言相关链接项目专栏运行环境匹配图片矩形鼠标绘制Halcon添加右键事件Task封装运行结果个人引用问题原因推测 圆形鼠标绘制代码运行结果 课程完结&#xff1a; 前言 为了更好地去学习WPFHalcon&#xff0c;我决定去报个班学一下。原因无非是想换个工作。相关的教学视…

【java爬虫】股票数据获取工具前后端代码

前面我们有好多文章都是在介绍股票数据获取工具&#xff0c;这是一个前后端分离项目 后端技术栈&#xff1a;springboot&#xff0c;sqlite&#xff0c;jdbcTemplate&#xff0c;okhttp 前端技术栈&#xff1a;vue&#xff0c;element-plus&#xff0c;echarts&#xff0c;ax…

K8s实战入门

1.NameSpace Namespace是kubernetes系统中的一种非常重要资源&#xff0c;它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下&#xff0c;kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中&#xff0c;可能不想让两个Pod之间进行互相…

在线智能防雷监控检测系统应用方案

在线智能防雷监控检测系统是一种利用现代信息技术&#xff0c;对防雷设施的运行状态进行实时监测、管理和控制的系统&#xff0c;它可以有效提高防雷保护的安全性、可靠性和智能化程度&#xff0c;降低运维成本和风险&#xff0c;为用户提供全方位的防雷解决方案。 地凯科技在…

排序算法之计数排序

计数排序是一种非基于比较的排序算法&#xff0c;它通过统计数组中每个元素出现的次数&#xff0c;将其按次数从小到大排序。 以下是计数排序的基本步骤&#xff1a; 统计&#xff1a;统计数组中每个元素出现的次数。计数&#xff1a;将每个元素的出现次数存储在另一个数组中…

redisson作为分布式锁的底层实现

1. redisson如何实现尝试获取锁的逻辑 如何实现在一段的时间内不断的尝试获取锁 其实就是搞了个while循环&#xff0c;不断的去尝试获取锁资源。但是因为latch的存在会在给定的时间内处于休眠状态。这个事件&#xff0c;监听的是解锁动作&#xff0c;如果解锁动作发生。会调用…

Android textview展示富文本内容

今天实现的内容&#xff0c;就是上图的效果&#xff0c;通过Span方式展示图片&#xff0c;需要支持文字颜色改变、加粗。支持style\"color:green; font-weight:bold;\"展示。尤其style标签中的font-size、font-weight是在原生中不被支持的。 所以我们今天需要使用自…

病情聊天机器人,利用Neo4j图数据库和Elasticsearch全文搜索引擎相结合

项目设计目的&#xff1a; 本项目旨在开发一个病情聊天机器人&#xff0c;利用Neo4j图数据库和Elasticsearch全文搜索引擎相结合&#xff0c;实现对病情相关数据的存储、查询和自动回答。通过与用户的交互&#xff0c;机器人可以根据用户提供的症状描述&#xff0c;给出初步的可…

字母简化(UPC练习)

题目描述 给出一串全部为小写英文字母的字符串&#xff0c;要求把这串字母简化。简化规则是&#xff1a;统计连续出现的字母数&#xff0c;输出时先输出个数&#xff0c;再输出字母。比如&#xff1a;aaabbbaa&#xff0c;则简化为3a3b2a&#xff1b;而zzzzeeeeea&#xff0c;…

帆软报表中定时调度中的最后一步如何增加新的处理方式

在定时调度中,到调度执行完之后,我们可能想做一些别的事情,当自带的处理方式不满足时,可以自定义自己的处理方式。 产品的处理方式一共有如下这些类型: 我们想在除了上面的处理方式之外增加自己的处理方式应该怎么做呢? 先看下效果: 涉及到两方面的改造,前端与后端。…

前端算法之二叉树

二叉树 二叉树用于解决什么问题 数据的组织与搜索&#xff1a;排序&#xff1a;表达式和计算&#xff1a;图形处理&#xff1a; 举例&#xff1a;二叉树的最近公共祖先 思路&#xff1a; 排序/排布方式 和 &#xff08;排序中&#xff09;当前树和节点的关系 举例2&#xff1a;…

光照贴图的参数化

正如Jon在上一篇文章中所解释的那样&#xff0c;我们在《见证者》中使用了预先计算的全局照明&#xff0c;而我的首要任务之一就是开发该系统。 我开发了一些有趣的技术来计算自动参数化&#xff0c;以一种可以轻松映射到 GPU 的方式制定照明计算&#xff0c;并通过使用辐照度…

【如何选择Mysql服务器的CPU核数及内存大小】

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容&#x1f4e2;文章总结&#x1f4e5;博主目标 &#x1f50a;博主介绍 &#x1f31f;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作…

Codeium在IDEA里的3个坑

转载自Codeium在IDEA里的3个坑&#xff1a;无法log in&#xff0c;downloading language server和中文乱码_downloading codeium language server...-CSDN博客文章浏览阅读1.7w次&#xff0c;点赞26次&#xff0c;收藏47次。Codeium安装IDEA插件的3个常见坑_downloading codeiu…

4-2. AOP细节

1 AOP细节 1.1 切入点表达式 1.1.1 作用 通过表达式的方式定位一个或多个具体的连接点。 1.1.2 语法细节 1&#xff09;切入点表达式的语法格式 execution([权限修饰符] [返回值类型] [简单类名/全类名] 方法名) 2) 举例说明 3&#xff09;在AspectJ中&#xff0c;切入…

通过国家网络风险管理方法提供安全的网络环境

印度尼西亚通过讨论网络安全法草案启动了其战略举措。不过&#xff0c;政府和议会尚未就该法案的多项内容达成一致。另一方面&#xff0c;制定战略性、全面的网络安全方法的紧迫性从未像今天这样重要。 其政府官方网站遭受了多起网络攻击&#xff0c;引发了人们对国家网络安全…

小肥柴慢慢手写数据结构(C篇)(5-2 AVL树)

小肥柴慢慢学习数据结构笔记&#xff08;C篇&#xff09;&#xff08;5-2 AVL树 目录5-5 AVL出现的原因5-5-1 平衡树5-5-2 平衡二叉树的具体案例 5-6 AVL平衡策略的讨论5-7 不使用平衡因子的实现&#xff08;黑皮书&#xff0c;训练思维&#xff09;5-8 使用平衡因子的实现&…

普中STM32-PZ6806L开发板(USART2 串口 + HI-LINK-V20离线语音模块控制LED灯)

简介 买了HI-LINK-V20型号的离线语音识别模块, 为了后面可以做有意思的东西, 现在先来用用, 使用USART2 串口 接收来自我在HI-LINK-V20中预设的动作, 当识别到词条时发送对应的指令到串口, HI-LINK串口接的就是STM32F03ZET6的USART2, 且往下看。 电路原理图 连线图 连线引脚表…

Linux:/proc/sys/vm/目录各文件详解

目录 前言一、/proc/sys/vm/目录各文件二、相关功能的API函数 前言 /proc/sys/vm/ 目录是 Linux 系统中的一个特殊目录&#xff0c;它包含了与虚拟内存子系统相关的系统内核参数。这些参数可以用来配置系统的虚拟内存管理策略&#xff0c;包括内存分配、页面置换、内存压缩、NU…

数据结构【线性表篇】(四)

数据结构【线性表篇】(四&#xff09; 文章目录 数据结构【线性表篇】(四&#xff09;前言为什么突然想学算法了&#xff1f;为什么选择码蹄集作为刷题软件&#xff1f; 目录一、栈(一)、栈的顺序存储(二)、栈的链式存储(三)、共享栈 二、队列(一)、队列的顺序存储(二)、队列的…