爬虫高级应用(15. 基于Charles抓包软件抓取手机APP数据)

2023-11-08

写在前面

移动App多使用异步的方式从服务端获取数据,抓取数据之前,要先分析移动App用于获取数据的URL,然后才可以使用requests等网络库去抓取

本章的主要内容:
    1、抓取App数据的原理
    2、Charles和mitmproxy
    3、在PC上安装整数,以及移动端安装和信任整数
    4、在手机端设置代理
    5、监听HTTP/HTTPS数据
    6、编辑请求信息
    7、mitmweb的基本使用方法
    8、如何结合mitmdump与mitmweb编写实时Python爬虫

配置安装Charles

安装Charles

链接: Charles官方下载网址.
在这里插入图片描述
博主安装的是Windows版本

下载相关证书

电脑证书:

安装Charles后,进行如下操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

手机证书:

设置代理

  1. 设置SSL代理设置
    在这里插入图片描述
    在这里插入图片描述
  2. 设置与手机的代理

在这里插入图片描述
在这里插入图片描述
下面为OPPO手机设置代理方式:

1. 手机连上电脑的wifi

在这里插入图片描述

2. 使用cmd->ipconfig获取电脑的ip地址

在这里插入图片描述

3.设置手机的代理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置成功后,进入浏览器等待一下,会出现如下的选项对话框,点击Allow即可
在这里插入图片描述
此时代理设置成功,但是主要任务还没有做,前面都是必要的手续
在浏览器输入chls.pro/ssl
即可下载Charles所需的证书
设置为信任即可
在这里插入图片描述
到此为止,电脑、手机证书和代理都完毕。

实操案例:抓取手机APP爱吾游戏宝盒数据

首先,清空其中的条目,因为Charles不仅再抓取手机的包,还在抓取电脑的包,电脑暂时不要访问页面或者打开应用,否则会弹出别的条目干扰。
在这里插入图片描述
此时我的手机打开了爱吾游戏宝盒,就弹出了好多条目,只需要找到哪一个条目中的数据是你需要的,保存url调用requests库请求url即可,接下来就是解析的工作等等。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
确定了内容是需要抓取的后,开始编写python爬虫
在这里插入图片描述
需要把上面response返回的Contents作为data加入编码中

import requests
# data从request的Text中获取
data = '''Serial=ffffffff-d2d2-eaad-ffff-ffffef05ac4a&VersionCode=2309&UserId=8224CBEB9F5FF772&isLogin=1&Page=1&TagName=
%E8%A7%92%E8%89%B2&TagId=1&Style=0&Time=1644220741&Sign=3b94ec9cd4b81ff5d76c2acb00c649e8'''
headers = {
    'accept-language':'zh-CN,zh;q=0.8',
    'user-agent':'okhttp-okgo/jeasonlzy',
    'content-type':'application/x-www-form-urlencoded',
    'Host':'service.25game.com'
}
# 抓取角色游戏信息--失败
# 无法解析:实时获取的数据
response = requests.post('https://service.25game.com/v2/App/AppList.aspx',headers=headers,data=data)
print(response.text)
# 抓取用户信息(成功)
data = '''Serial=ffffffff-d2d2-eaad-ffff-ffffef05ac4a&VersionCode=2309&UserId=8224CBEB9F5FF772&isLogin=1&Time=1644220737&Sign=127929932b6de290fe6ac0585bcfd054'''
response = requests.post('https://service.25game.com/v2/User/UserInfo.aspx',headers=headers,data=data)
print(response.text)
# 抓取移植游戏列表(成功)
data = '''Serial=ffffffff-d2d2-eaad-ffff-ffffef05ac4a&VersionCode=2309&UserId=8224CBEB9F5FF772&isLogin=1&Page=1&Time=1644221449&Sign=c960123b24a715860970f0263f0d6ec3'''
response = requests.post('https://service.25game.com/v2/DiyPage/EmuGame.aspx',headers=headers,data=data)
print(response.text)

注意:像某东JD这种应用大多还需要手机APP登录后的Cookie,同样,Charles可以获取cookie,别忘了在python爬虫中加入到请求头中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爬虫高级应用(15. 基于Charles抓包软件抓取手机APP数据) 的相关文章

随机推荐

  • 图片码生成

    1 项目结构 2 类的内容 2 1 Digest package com rtsm zhjs background common imgcode author loki date 2018 04 27 上午10 16 import org
  • 一篇文章带你了解国际化,以及springboot当中如何实现国际化

    国际化一般在中大型公司领域会用得到 有时候会面对一些外国客户等 这时候就需要做一些多语言功能 来提升项目的可读性 本文带你了解什么是国际化以及他的用法 目录 理解国际化概念 简单了解国际化原理 国际化demo练习 1 引入依赖 2 创建多语
  • C#6.0新语法

    一 自动属性初始化 在以前的C 版本中 属性是这样写的 1 public int Id get set 2 public string Name get set 在C 6 0中 属性可以自动赋初始值 例如 1 public string N
  • freeRTOS手册 第六章 . 中断管理

    如果我对本翻译内容享有所有权 允许任何人复制使用本文章 不会收取任何费用 如有平台向你收取费用与本人无任何关系 第六章 中断管理 章节介绍和范围 事件 嵌入式实时系统必需对环境中的事件做出响应 比如 外部网络设备收到一个发送给TCP IP栈
  • gc垃圾回收四种方法

    标记清除算法 标记清除 Mark Sweep 算法 包含 标记 和 清除 两个阶段 首先标记出所有需要回收的对象 在标记完成后统一回收掉所有被标记的对象 标记清除算法是最基础的收集算法 后续的收集算法都是基于该思路并对其缺点进行改进而得到的
  • 使用Docker-镜像命令

    镜像名称 首先来看下镜像的名称组成 镜名称一般分两部分组成 repository tag 在没有指定tag时 默认是latest 代表最新版本的镜像 如图 这里的mysql就是repository 5 7就是tag 合一起就是镜像名称 代表
  • C#--使用Process类kill进程

    1 背景 static变量 static变量也称作静态变量 静态变量和非静态变量的区别是 静态变量被所有的对象所共享 在内存中只有一个副本 它当且仅当在类初次加载时会被初始化 而非静态变量是对象所拥有的 在创建对象的时候被初始化 存在多个副
  • 使用 Qt designer

    使用 Qt designer 1 配置Qt designer外部工具 2 Qt designer Qt 设计师 使用 2 1 创建保存文件ui 2 2 pyuic5 exe 工具 转化成为py文件 2 3 直接导入UI文件 2 qrc资源管
  • C# 正则表达式进阶

    文章目录 限定开头和结尾 匹配汉字 1 9反向引用 分组构造 具名的分组构造 断言 零宽度正预测先行断言 断言某位置后面是xxx 零宽度负预测先行断言 断言某位置后面不是xxx 零宽度正预测后发断言 断言某位置前面是xxx 零宽度负预测后发
  • 第二十七篇 SeNet——论文翻译

    文章目录 摘要 1 简介 2 相关工作 3 压缩和激励块 3 1 压缩 全局信息嵌入 3 2激励 自适应再校正 3 3 实例化 4 模型和计算复杂性 5 实验 5 1 图像分类 5 2 场景分类 5 3 COCO上的目标检测 5 4 ILS
  • 保研之路——复旦计算机学院预推免

    复旦计算机学院预推免 个人情况 高校复试参与情况 复旦计算机学院直硕 9 19 9 20 结语 嗯 抱着不白花这么多路费住宿费的初衷准备写一个保研经验贴 希望学弟学妹少花点钱吧orz 我的战术大概是只要学校给我发了邀请我就去 除了时间冲突的
  • windows配置selenium

    文章目录 1 确定chrome版本 2 下载并配置chrome驱动 3 测试 1 确定chrome版本 在chrome中访问 chrome settings help 可以看到当前版本 111 0 5563 111 64位 2 下载并配置c
  • matlab读取sheet1_matlab读取excel数据的方法步骤详解

    在Excel中录入好数据以后经常需要被matlab读取 具体该如何读取呢 下面是由学习啦小编分享的matlab读取excel数据的方法 以供大家阅读和学习 matlab读取excel数据的方法 matlab读取Excel数据步骤1 如果数据
  • Vue/JS自定义指令:实现元素滑动、移动端适配以及边界处理

    核心属性 Element clientWidth 元素可视宽度 Element clientHeight 元素可视高度 MouseEvent clientX 鼠标相对于浏览器左上顶点的水平坐标 MouseEvent clientY 鼠标相对
  • 微服务如何治理

    微服务远程调用可能有如下问题 注册中心宕机 服务提供者B有节点宕机 服务消费者A和注册中心之间的网络不通 服务提供者B和注册中心之间的网络不通 服务消费者A和服务提供者B之间的网络不通 服务提供者B有些节点性能变慢 服务提供者B短时间内出现
  • 每日学习07:Comparable接口的CompareTo的用法

    接口 Comparable 此接口强行对实现它的每个类的对象进行整体排序 这种排序被称为类的自然排序 类的 compareTo 方法被称为它的自然比较方法 字符串 数组列表 数组 所有可以 排序 的类都实现了java lang Compar
  • ThinkPHP5.1开发企业微信支付到零钱

    Wxpay php
  • npm启动vue应用开发服务器过程分析

    关于 npm run serve 命令启动vue应用开发环境的过程分析 1 npm run 命令执行时 npm run 命令执行时 会把 node modules bin目录添加到执行环境的PATH变量中 全局的没有安装的包 在node m
  • 本地IDEA中使用SonarQube扫描代码

    文章目录 背景 步骤 安装插件 配置 使用 背景 为了提高效率 在走代码CICD流程里的Sonarqube之前 先在本地提前进行一次扫描和修复 步骤 安装插件 2种方式 在IDE的插件管理中心安装名为 SonarQube Community
  • 爬虫高级应用(15. 基于Charles抓包软件抓取手机APP数据)

    目录 写在前面 配置安装Charles 安装Charles 下载相关证书 电脑证书 手机证书 设置代理 实操案例 抓取手机APP爱吾游戏宝盒数据 写在前面 移动App多使用异步的方式从服务端获取数据 抓取数据之前 要先分析移动App用于获取