网络爬虫 - App爬虫及代理的使用(十一)

App爬虫及代理的使用

  • 一、App抓包
    • 1. App爬虫原理
    • 2. reqable的安装与配置
      • 1. reqable安装教程
      • 2. reqable的配置
    • 3. 模拟器的安装与配置
      • 1. 夜神模拟器的安装
      • 2. 夜神模拟器的配置
    • 4. 内联调试及注意事项
      • 1. 软件启动顺序
      • 2. 开启抓包功能
      • 3. reqable面板功能
      • 4. 夜神模拟器设置项
      • 5. 注意事项
    • 5. Requable代理浏览器网络
      • 1. 配置浏览器代理
      • 2. Requable配置浏览器代理
  • 二、代理的使用
    • 1. 付费代理
      • 1. 找付费代理服务站点
      • 2. 生成获取代理的api接口
      • 3. python请求接口
      • 4. 代理使用注意事项
    • 2. 免费代理
      • 1. 代理池设计
      • 2. Redis数据库
        • 1. Redis是什么?
        • 2. Redis应用场景
        • 3. Redis安装
        • 4. Redis数据库有序集合操作
      • 3. 代理池实现
        • 1. 采集模块
        • 2. 存储模块
        • 3. 检测模块
        • 4. web接口
        • 5. 调度模块
        • 6. 配置文档
    • 总结:


一、App抓包

1. App爬虫原理

Application(以下称App)主要指安装在智能手机上的应用程序。APP 运行在相应的操作系统上,如苹果公司的 iOS 系统或谷歌公司的 Android 系统。

App 和网站都是 Web 应用,它们与服务器通信时使用的协议是相同的。

与网站不同的是,App 的网络传输和数据收发相对隐蔽,用户既无法直接查看客户端发出的请求信息和服务器端返回的响应内容,也无法直接查看 App 的代码。

为了能像使用浏览器开发者工具一样对APP数据进行抓包,就必须先要一个能够对app数据进行抓取的开发者工具。
在这里插入图片描述

2. reqable的安装与配置

reqable是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的所有 请求,可以针对特定的请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

看到这么多的应用,是不是就迫不及待的想要开始你的抓包之旅呢,不要急,俗话说的好:工欲善其事,必先利其器,我们先来安装reqable吧。

官网下载地址:https://reqable.com/
在这里插入图片描述

1. reqable安装教程

● 安装教程如下:
(1)双击安装包,如下所示,选择想要存放的目录,如果不需要修改,使用默认的即可,然后点击Next:
在这里插入图片描述
(2)会出现以下界面,继续点击Next
在这里插入图片描述
(3)点击Install,等待几秒即可安装
在这里插入图片描述
(4)安装后双击运行,如下所示到这里我们就初步安装成功了
在这里插入图片描述

2. reqable的配置

如果想要对手机上的app进行抓包怎么办呢,那么你还需要进行以下操作:

  • 首先你的Fiddler所在的电脑和手机必须处在同一个局域网内(即连着同一个路由器)。
  • 其次需要修改reqable监听的ip和端口号,如下所示:
    在这里插入图片描述

这个ip和端口号就是手机app设置的代理,后续在手机端我们会设置

最后就是需要配置证书,没有证书就会导致手机没网络。配置证书在本教程中需要配置到模拟器,后续在配置模拟器的再详细介绍。证书配置的教程在reqable中也有教程,具体参照:安装教程

3. 模拟器的安装与配置

为了能像使用浏览器开发者工具一样对APP数据进行抓包,就必须要一个能运行APP的环境。目前主流的是使用模拟器进行抓包,原因有以下几点:

  • Android8.0 以上安卓系统有些数据抓取不到
  • 模拟器环境配置相对简单,容易root之后获取更高的权限

当然也可以选择使用真机进行调试。但是实际采用真机会有很多不必要的麻烦,必须重做系统、获取root权限多多少少会影响到正常的使用,如果专门购买一个真机专门用于app调试,也免不了要多踩很多坑(国内的厂商都有自己的优化,并且手机型号、系统版本等等都会影响到调试)。

1. 夜神模拟器的安装

● 官网下载地址:https://www.yeshen.com/
在这里插入图片描述
● 双击安装包,选择安装路径,点击安装即可:
在这里插入图片描述

2. 夜神模拟器的配置

安装高版本安卓系统
● 目前许多app应用对低版本的安卓系统会有不兼容的情况。所以建议在夜深模拟器中安装安卓9的系统版本
『使用模拟器助手,即可选择系统版本安装』
在这里插入图片描述
配置代理
● 在系统页面中找到 工具 中找到 设置,在设置页面下拉找到网络和互联网点击
在这里插入图片描述
在这里插入图片描述
● 点击 WLAN
在这里插入图片描述

● 点击 编辑 按钮
在这里插入图片描述

● 点击 设置 按钮
在这里插入图片描述

● 点击 高级选项 下拉按钮
在这里插入图片描述

● 代理模式选择 手动,填写代理服务器主机名代理服务器端口,点击保存
在这里插入图片描述
注意:reqable中显示监听的ip和端口是什么,那么在这里就填写什么

配置证书
Android 7.0之后默认不相信用户自己安装的证书,这样一来抓包工具就无法抓取https加密的报文,这种情况下解决办法只有两个,一个是不用android7.0以上的设备,还有一个方法就是安装系统的根证书。接下来我们来看看如何安装系统的根证书。

● 配置 ADB
ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。

ADB 也是 Android SDK 中的一个工具,可以直接操作管理 Android 模拟器或者真实的 Android设备。
(1)Google很好心,直接放出ADB的zip供人下载。路径如下:
Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Mac版本:https://googledownloads.cn/android/repository/platform-tools-latest-darwin.zip
Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip

(2)配置 ADB系统环境变量
ADB 压缩包解压到指定目录后,把解压路径放到系统变量里去(Path)
在这里插入图片描述
(3)电脑打开cmd窗口,输入 adb version ,显示 adb 版本,说明安装成功
在这里插入图片描述

● 使用 ADB 操作证书移动以及权限的修改
(1)在 Reqable 中下载证书,每台电脑下载的文件名字会不一样
在这里插入图片描述
(2)打开CMD操作证书的移动及权限的修改
要启动夜神模拟器操作、关掉退出杀毒软件等
① 用 ADB 指令先连接模拟器

adb devices
在这里插入图片描述

注意!!!注意!!!注意!!!
连接为空,可以使用端口连接夜神模拟器

adb connect 127.0.0.1:62001

在这里插入图片描述

(3) 将下载好的证书移动到模拟器安卓系统根路径 / 下

① 首先要进入模拟器安卓系统修改文件目录权限

adb shell

在这里插入图片描述
② 修改根目录和system目录权限可读可写

mount -o rw,remount /
mount -o rw,remount /system

在这里插入图片描述
③ 输入 exit 退出模拟器安卓系统终端

exit

在这里插入图片描述
④ 将证书从windows系统移动到模拟器安卓系统下

格式:adb push 证书路径 存放在模拟器路径
adb push 证书路径 /system/etc/security/cacerts/

在这里插入图片描述

⑤ 再次进入模拟器安卓终端,修改证书权限

chmod 644 /system/etc/security/cacerts/证书文件名

在这里插入图片描述
至此为止, 证书安装成功, 需要重启模拟器生效

● 查看证书是否安装到系统证书

手机进入:设置–>安全性和位置信息–>加密与凭据–>信任的凭据–>系统

在这里插入图片描述

4. 内联调试及注意事项

1. 软件启动顺序

因为在模拟器中配置了代理服务器主机名和代理服务器端口,对应的就是reqable监听的ip和端口,所有的模拟器网关都会走这里。因此当我们单独启动模拟器的时候是没有网络的。

所以每次软件的启动的顺序如下,这样启动模拟器才会有网络:

  1. 先打开reqable
  2. 再打开夜神模拟器

2. 开启抓包功能

如果reqable需要抓取模拟器的请求,需要在软件界面启动抓包功能,如下所示:

在这里插入图片描述
但是如果直接这样启动会抓取到很多系统代理,我们不需要分析这类系统代理请求,可以关闭此功能,如下所示:

在这里插入图片描述

3. reqable面板功能

完整的面板功能介绍请参考官方文档:http://reqable.com/docs/overview

列表部件功能
在这里插入图片描述
列表数据

选中一个列表项,双击可以打开详情:
在这里插入图片描述
快捷操作栏
在这里插入图片描述

4. 夜神模拟器设置项

在这里插入图片描述

5. 注意事项

系统代理
reqable配置了系统证书后,会自动代理系统代理。导致后续使用代码发送http请求的时候报代理错误。因此在使用代码请求的时候需要在系统设置里面关闭系统代理。
在这里插入图片描述
在这里插入图片描述

安装App应用

系统应用无法安装App应用,如需安装可以在豌豆荚下载App应用安装包
豌豆荚官网地址:https://www.wandoujia.com/

在这里插入图片描述
选择普通下载

在这里插入图片描述

下载的文件尾缀是apk,此格式也是安卓应用安装包格式

将下载的apk安装包拖入到模拟器即可安装应用

在这里插入图片描述
在这里插入图片描述

5. Requable代理浏览器网络

某些网站会检测浏览器开发者工具状态 ,一旦启用开发者工具进行抓包,会进入无线Debug状态。在此状态下我们无法抓取数据包,那么我们可以不使用浏览器开发则会工具抓包。可以配置代理后使用Requable进行抓包。

目标站点:https://www.qidian.com/rank/yuepiao/

1. 配置浏览器代理

浏览器需要走自己的代理,可以借助SwitchyOmega代理插件,将此插件安装在浏览器后,按照如下方式配置:

在这里插入图片描述
配置好代理插件后,可以在插件栏固定,方便切换代理:
在这里插入图片描述
使用插件,选择配置好的代理:
在这里插入图片描述

2. Requable配置浏览器代理

首先需要安装windows系统证书
在这里插入图片描述

配置抓包的服务器ip和端口,启动即可抓包
在这里插入图片描述
效果显示:

在这里插入图片描述
温馨提示:浏览器不使用代理的时候需要切换到直接连接模式,不然会没有网络。

在这里插入图片描述

二、代理的使用

1. 付费代理

1. 找付费代理服务站点

搜索 代理ip ,能够发现有很多付费代理服务站点

在这里插入图片描述

目前付费代理站点一般注册后,会有免费的测试代理用量,学习阶段用免费的做测试就够用了。不过现在代理网站普遍都需要实名认证,也会有站点的工作人员联系你添加联系方式,额外也会送你一些ip测试。

  1. 教学所用的代理服务网站是:巨量IP,用其他网站的代理服务也可以,使用方法大同小异

  2. 品易HTTP网址:https://www.juliangip.com/

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

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

相关文章

【25.06】FISCOBCOS使用caliper自定义测试 通过webase 单机四节点 helloworld等进行测试

前置条件 安装一个Ubuntu20+的镜像 基础环境安装 Git cURL vim jq sudo apt install -y git curl vim jq Docker和Docker-compose 这个命令会自动安装docker sudo apt install docker-compose sudo chmod +x /usr/bin/docker-compose docker versiondocker-compose vers…

【基础】Unity中Camera组件知识点

一、投影模式 (Projection) 1. 透视模式 (Perspective) 原理:模拟人眼,近大远小(锥形体视锥) 核心参数: Field of View (FOV):垂直视场角 典型值:第一人称 60-90,驾驶舱 30-45 特…

PCA(K-L变换)人脸识别(python实现)

数据集分析 ORL数据集, 总共40个人,每个人拍摄10张人脸照片 照片格式为灰度图像,尺寸112 * 92 特点: 图像质量高,无需灰度运算、去噪等预处理 人脸已经位于图像正中央,但部分图像角度倾斜(可…

【Git】View Submitted Updates——diff、show、log

在 Git 中查看更新的内容(即工作区、暂存区或提交之间的差异)是日常开发中的常见操作。以下是常用的命令和场景说明: 文章目录 1、查看工作区与暂存区的差异2、查看提交历史中的差异3、查看工作区与最新提交的差异4、查看两个提交之间的差异5…

deepseek原理和项目实战笔记2 -- deepseek核心架构

混合专家(MoE) ​​混合专家(Mixture of Experts, MoE)​​ 是一种机器学习模型架构,其核心思想是通过组合多个“专家”子模型(通常为小型神经网络)来处理不同输入,从而提高模型的容…

GPU层次结构(Nvidia和Apple M芯片,从硬件到pytorch)

这里写目录标题 0、驱动pytorch环境安装验证1.window环境2.Mac Apple M芯片环境 1、Nvidia显卡驱动、CUDA、cuDNN关系汇总1**1. Nvidia显卡驱动(Graphics Driver)****2. CUDA(Compute Unified Device Architecture)****3. cuDNN&a…

OpenWrt 搭建 samba 服务器的方法并解决 Windows 不允许访问匿名服务器(0x80004005的错误)的方法

文章目录 一、安装所需要的软件二、配置自动挂载三、配置 Samba 服务器四、配置 Samba 访问用户和密码(可选)新建 Samba 专门的用户添加无密码的 Samba 账户使用root账户 五、解决 Windows 无法匿名访问Samba方案一 配置无密码的Samba账户并启用匿名访问…

CentOS 7镜像源替换

更换为阿里云镜像源(适用于 CentOS 7) 1、备份原来的 repo 文件: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下载阿里云的 CentOS 7 repo 文件: curl -o /etc/yum.repos.d/CentOS-Base…

功能结构整理

C# Sxer Sxer.Base:基础子功能 Sxer.Base.Debug:打印 Sxer.Utility:工具类 Sxer.CustomFunction:独立功能点开发 Unity

云计算Linux Rocky day02(安装Linux系统、设备表示方式、Linux基本操作)

云计算Linux Rocky day02(安装Linux系统、设备表示方式、Linux基本操作) 目录 云计算Linux Rocky day02(安装Linux系统、设备表示方式、Linux基本操作)1、虚拟机VMware安装Rocky2、Linux命令行3、Linux Rocky修改字体大小和背景颜…

【论文阅读】《PEACE: Empowering Geologic Map Holistic Understanding with MLLMs》

目录 前言一、研究背景与问题1-1、地质图的重要性1-2、现有MLLMs的不足 二、 主要贡献2-1、GeoMap-Bench:首个地质图理解评估基准2-2、GeoMap-Agent:首个地质图专用AI代理2-3、实验验证与性能优势 三、关键技术3-1、 数据构建与预处理3-2、分层信息提取&…

计算机网络通信技术与协议(八)----关于IS-IS的基础概念

关于IS-IS最早是ISO为CLNP(Connectionless Network Protocol,无连接网络协议)而设计的一种动态路由协议。 目录 这里提到了CLNP这个概念,在这里解释一下: CLNS由以下三个协议构成: 那么为什…

网络原理1

协议 在网络通信中,协议是非常重要的概念。协议是在网络通信过程中的约定。发送方和接收方需要提前商量好数据的格式,才能确保正确进行沟通。 应用层协议 应用层,对应着应用程序,是跟我们程序员打交道最多的一层。调用操作系统…

【运维】统信UOS操作系统aarch64自制OpenSSH 9.6p1 rpm包(含ssh-copy-id命令)修复漏洞

为修复如下OpenSSH漏洞,openssh从8.2升级至9.6,然而并未找到统信9.6的rpm源,所以自己动手制作,折腾了一天,在此记录一下 准备工作 检查版本 cat /etc/os-releaseuname -a如图当前环境为aarch64架构,在其…

CI/CD 持续集成、持续交付、持续部署

CI/CD 是 持续集成(Continuous Integration) 和 持续交付/持续部署(Continuous Delivery/Deployment) 的缩写,代表现代软件开发中通过自动化流程快速、可靠地构建、测试和发布代码的实践。其核心目标是 减少人工干预、…

Spring Boot 应用中实现配置文件敏感信息加密解密方案

Spring Boot 应用中实现配置文件敏感信息加密解密方案 背景与挑战 🚩一、设计目标 🎯二、整体启动流程 🔄三、方案实现详解 ⚙️3.1 配置解密入口:EnvironmentPostProcessor3.2 通用解密工具类:EncryptionTool 四、快速…

OpenCV CUDA模块特征检测------角点检测的接口createMinEigenValCorner()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 该函数创建一个 基于最小特征值(Minimum Eigenvalue)的角点响应计算对象,这是另一种经典的角点检测方法&…

性能优化 - 理论篇:CPU、内存、I/O诊断手段

文章目录 Pre引言1. CPU 性能瓶颈1.1 top 命令 —— 多维度 CPU 使用率指标1.2 负载(load)——任务排队情况1.3 vmstat 命令 —— CPU 繁忙与等待 2. 内存性能瓶颈2.1 操作系统层面的内存分布2.2 top 命令 —— VIRT / RES / SHR 三个关键列2.3 CPU 缓存…

GPIO的内部结构与功能解析

一、GPIO总体结构 总体构成 1.APB2(外设总线) APB2总线是微控制器内部连接CPU与外设(如GPIO)的总线,负责CPU对GPIO寄存器的读写访问,支持低速外设通信 2.寄存器 控制GPIO的配置(输入/输出模式、上拉/下拉等&#x…

汽车总线分析总结(CAN、LIN、FlexRay、MOST、车载以太网)

目录 一、汽车总线技术概述 二、主流汽车总线技术对比分析 1. CAN总线(Controller Area Network) 2. LIN总线(Local Interconnect Network) 3. FlexRay总线 4. MOST总线(Media Oriented Systems Transport&#x…