Python爬虫(五)

199 阅读4分钟

一、抓包工具的使用

1.Charles的使用

Charles 是一个网络抓包工具,可以用它来做 App 的抓包分析,得到 App 运行过程中发生的所有网络请求和响应内容。相比 Fiddler,Charles跨平台支持更好。

原理

  • 首先将 Charles运行在自己的PC上,Charles运行的时候会在PC的8888端口开启一个代理服务
  • 确保手机和PC在同一个局域网内
  • 设置手机代理为Charles的代理地址,这样手机访问互联网的数据包就会流经Charles
  • Charles起到中间人作用,所有HTTP/HTTPS请求和响应都可以捕获到

2.Sniff Master的使用

Sniff Master 是一款专业的网络流量分析工具,相比传统抓包工具具有以下优势:

  • 支持更全面的协议解析,包括HTTP/HTTPS、TCP/UDP等
  • 提供直观的数据可视化分析界面
  • 具备智能流量分类功能,可自动识别常见应用协议
  • 支持自定义规则匹配关键数据包

典型应用场景

  1. 移动App接口分析
  2. API调试与测试
  3. 网络安全监控
  4. 网络性能优化

3.mitmproxy的使用

mitmproxy 是一个支持HTTP和HTTPS的抓包程序,有类似Fiddler、Charles的功能,但它是控制台形式操作。

核心组件

  • mitmdump:命令行接口,可对接Python脚本
  • mitmweb:Web程序,可视化查看捕获的请求

与Sniff Master的对比

  • mitmproxy更适合开发者进行深度定制
  • Sniff Master则提供了更友好的用户界面
  • 两者都可以作为Charles的替代方案

4.Appium的使用

Appium是一个跨平台移动端自动化测试工具,可以模拟App内部的各种操作。与抓包工具配合使用时,可以:

  • 自动化触发特定网络请求
  • 验证网络请求的正确性
  • 测试不同网络环境下的App表现

5.airtest的使用

Airtest是一个基于图像识别的UI自动化测试框架,与抓包工具结合可以:

  • 通过图像识别触发特定网络请求
  • 验证网络请求与UI表现的对应关系
  • 实现端到端的自动化测试流程

二、App逆向的常见技巧

1.App逆向介绍

很多App在请求API时都有加密参数,需要使用逆向技术分析加密逻辑。常用的方法包括:

  • 使用抓包工具(Sniff Master/Charles)捕获原始请求
  • 反编译APK分析加密算法
  • 动态调试跟踪参数生成过程

2.逆向工具

JEB是一款专业的安卓应用程序反编译工具,配合抓包工具使用时可以:

  1. 先用Sniff Master捕获关键请求
  2. 在JEB中搜索相关API字符串
  3. 跟踪参数生成逻辑

三、智能化解析

1.基本原理

智能化解析是指自动识别网页内容结构的技术。结合抓包工具使用时:

  1. 使用Sniff Master捕获网页请求
  2. 分析响应内容结构
  3. 应用智能解析算法提取关键内容

智能解析的关键特征

  • 区块位置和大小
  • 标签密度
  • 视觉特征
  • 内容模式识别

2.智能化解析工具

Readability算法通过计算DOM文本密度来识别正文内容。与抓包工具配合的工作流程:

  1. Sniff Master捕获网页请求
  2. 将响应内容传递给Readability处理
  3. 提取结构化内容

Newspaper库提供了更高级的内容提取功能,支持:

  • 自动提取正文
  • 识别发布时间
  • 提取关键图片

四、Scrapy的使用

1.Scrapy的介绍

Scrapy是一个基于Twisted的异步爬虫框架,与抓包工具配合使用时可以:

  • 使用Sniff Master分析目标网站API
  • 在Scrapy中实现对应的请求逻辑
  • 监控爬虫请求确保符合预期

2.Spider的用法

抓包工具在爬虫开发中的作用

  1. 分析目标网站请求模式
  2. 识别关键API参数
  3. 验证爬虫请求的正确性
  4. 监控反爬机制

典型工作流程

  • 使用Sniff Master分析目标网站
  • 在Scrapy中实现对应的请求逻辑
  • 使用中间件处理特殊请求头
  • 通过Pipeline存储解析结果