Python爬虫技术终端协议分析与抓包应用

news/2024/9/18 1:31:37/ 标签: python, 爬虫, fiddler, 网络爬虫, pycharm, vscode, 网络安全

内容导读

分析PC客户端抓包

分析App客户端抓包

一、分析PC客户端抓包

以爬取某音乐PC客户端为例,实现网页内容爬取与分析。

任务描述:

终端协议是网络上设备之间通信规则的集合,通过终端协议可以获取PC客户端和App客户端数据。常用的PC客户端抓包工具有Wireshark、HTTP Analyzer等。

Wireshark适合几乎所有网络协议的分析,功能强大,但相对臃肿。HTTP Analyzer则更专注于对HTTP/HTTPS数据流的分析,还提供了针对某个进程进行抓包的功能。这里使用HTTP Analyzer工具实现酷我音乐PC客户端分析。

任务分析:

使用Chrome开发者工具,查找表单数据的提交入口。

使用Chrome开发者工具,查找需要提交的表单数据。

获取验证码图片,进行人工识别验证码。

使用POST请求方法登录。

1、了解HTTP Analyzer工具

HTTP Analyzer工具是一款实时分析HTTP/HTTPS数据流的工具,可以实时捕捉HTTP/HTTPS数据。其包含许多信息,如文件头、HTML内容、Cookie、查询字符串、提交的数据、重定向的URL等。

还可以提供缓冲区信息、清理对话内容、HTTP状态信息和其他过滤选项。HTTP Analyzer工具还是一款可用于分析、调试和诊断的开发工具,它可以集成在浏览器中爬取HTML信息,也可安装为单独的应用程序。

注意:本项目使用的是HTTP Analyzer V7.6。

HTTP Analyzer工具的主界面如图所示。单击主界面左上方的“开始”按钮,即可开始记录当前处于会话状态的所有应用程序的HTTP流量信息。

如果当前没有正在进行网络会话的应用程序,那么可以在单击“开始”按钮后,使用浏览器打开任意一个网页,即可看到相应的HTTP流量信息。

如果当前有应用程序正在进行网络会话,那么可看到中间的窗口部分会显示一条或多条详细的HTTP流量信息,如图所示。

单击该图中任意HTTP连接,即可查看该连接所对应的详细信息,捕获到的HTTP连接信息显示在中间的窗口中,每个窗口显示的具体信息如下页。

窗口1显示了所有的HTTP连接的流量信息,并可以根据进程和时间进行归类排序。

窗口2以选项卡的形式显示了选中的HTTP连接的详细信息,包括Request-Line、Host、Connection、Accept、User-Agent等。

窗口3显示了当前连接所属进程的相关信息。

单击“进程”下拉框,可以根据进程来过滤数据,如下左图所示。

以text/html为过滤条件,单击“类型”下拉框,选择“text/html”选项,如右图所示,即可通过数据类型进行过滤,以得到想要的结果。

2、爬取酷我音乐PC客户端数据

使用HTTP Analyzer工具分别获取酷我音乐PC客户端中歌手的个人信息、热门歌曲、专辑信息及热门评论等数据,具体步骤如下。

(1)打开酷我音乐PC客户端。

(2)启动HTTP Analyzer,选择仅显示酷我音乐PC客户端信息的进程,在酷我音乐PC客户端中的搜索框搜索某歌手,可以看到如图所示的抓包效果。

针对图所示的抓包效果,主要关注搜索请求的类型和响应,可以发现,该搜索使用的是GET请求。选择相关请求链接后,“查询字符串”结果如左图所示,“响应内容”结果如右图所示。

由图可以看出,响应内容是JSON格式的数据,可以使用项目3介绍的Beautiful Soup库对它进行解析和数据提取。

同时,在数据中可发现歌手的个人信息、热门歌曲、专辑信息等内容。

到此,已介绍完使用HTTP Analyzer工具分析PC客户端的操作流程,用户可以根据这种方式分析出某音乐客户端的所有信息接口,然后启动爬虫并发送请求进行解析。

但本小节所介绍的分析内容比较简单,如果客户端的请求链接是加密的,那么分析难度将会上升。

例如,网易云音乐的请求链接是加密的,利用HTTP Analyzer工具无法爬取指定的内容和结果。

因此,用户需要转换思路,利用其他工具进行分析。

二、分析App客户端抓包

以爬取某音乐App客户端数据为例,同样实现网页内容爬取与分析。

任务描述:

大多数爬虫的对象都是PC网页,但随着App客户端应用数量的增多,相应的爬取需求也越来越多,因此App客户端的数据爬取对于一名爬虫开发者来说是一项常用的技能。

本任务以Android系统的手机App客户端为例,介绍在PC端使用Fiddler工具对酷我音乐App客户端进行抓包,并爬取酷我音乐App客户端图片的方法与流程。

任务分析:

了解并设置Fiddler工具。

通过Fiddler工具得到酷我音乐App客户端的JSON格式数据。

利用Fiddler工具抓取的包,对酷我音乐App客户端的图片信息进行爬取。

1、了解Fiddler工具

Fiddler工具是位于客户端和服务器端之间的HTTP代理,也是目前最常用的HTTP抓包工具之一。

Fiddler工具能够记录客户端和服务器端之间的所有HTTP请求,可以针对特定的HTTP请求分析请求数据、设置断点、调试Web应用、修改请求数据等,甚至可以修改服务器端返回的数据,其功能非常强大,是Web应用调试的利器。

注意:本项目使用的是Fiddler Classic 5.0。

2、设置Fiddler工具

设置Fiddler工具的具体步骤如下。

打开Fiddler工具,单击“Tools”按钮并选择“Options”选项,如图所示。

勾选“Decrypt HTTPS traffic”复选框,Fiddler即可截获HTTPS请求,如图所示。

切换至“Connections”选项卡,勾选“Allow remote computers to connect”复选框,表示允许别的远程设备将HTTP/HTTPS请求发送到Fiddler,如图所示。

此处默认的端口号(即图中的“Fiddler listens on port”)为“8888”。

注意:端口号可以根据需求更改,但不能与已使用的端口号冲突。

重启Fiddler,即可完成设置。

3、设置Android系统的手机

使用Fiddler工具实现手机抓包,需要确保手机和计算机的网络在同一个局域网内,最简便的方法是让计算机和手机同时连接同一个路由器,由路由器分配设备的IP地址。

在命令提示符窗口中通过“ipconfig”命令查看计算机的IP地址,找到“无线局域网适配器WLAN”的“IPv4地址”并记录,如图所示。

成功获取计算机的IP地址和端口号后,在Android系统手机的Wi-Fi设置中,找到手机连接路由器的Wi-Fi,修改网络,即可对手机进行代理设置。

将“代理”设置为“手动”,填入获取到的计算机IP地址和端口号,点击“保存”按钮,如图所示。

在Android系统手机的浏览器中打开无线局域网IPv4网址的8888端口(本小节设置的安装证书网页为“http://192.168.137.42:8888”)

在网页中单击“FiddlerRoot certificate”证书的安装证书即可,如图所示。

4、利用Fiddler工具进行抓包测试

设置完成Fiddler工具和Android系统的手机后,可用手机浏览器测试抓包百度首页。

通过手机浏览器打开百度首页,观察Fiddler工具左侧栏的“Host”中是否含有百度的信息,若含有百度的信息,则说明手机成功连接上Fiddler工具,如图所示。

5、分析酷我音乐App客户端

打开酷我音乐App客户端首页,如图所示。

在Fiddler工具的左侧栏找到酷我音乐App客户端的信息,Fiddler工具抓取到的每个数据包都会在该列表中展示,单击具体的一个数据包后,可以在右侧单击“Inspectors”选项卡查看数据包的详细内容。

Fiddler工具的右侧主要分为请求信息(即客户端发出的数据)和响应信息(服务器端返回的数据)两部分。

在请求信息部分单击“Raw”按钮(显示Headers和Body数据),在响应信息部分单击“JSON”按钮(若请求数据或响应数据是JSON格式,则以JSON格式显示请求或响应的内容),结果如图所示。

最后解析、爬取、存储酷我音乐App客户端首页图片。

更多精彩内容请关注本站!


http://www.ppmy.cn/news/1516886.html

相关文章

Node.js中的pipe方法:深入解析与应用指南

在Node.js中,pipe方法是处理流(Stream)数据的一种非常高效的方式。它允许你将一个可读流(Readable Stream)的数据直接传输到一个可写流(Writable Stream)中,而无需手动编写读取和写入…

React 实现请求接口封装

接口封装 一、正常接口请求 useEffect(()>{//获取下拉数据async function fetchDateWrapper() {try{const res await 接口();console.log("res",res.data);const value res.data.map(item {return { label: item.valueName,value:valueCode }});setData(value…

大数据5v特性、集群、分布式

目录 数据分析六部曲 大数据的特点 (5v特征) 分布式与集群的区别 常用的分布式方案 数据分析六部曲 明确分析目的和思路:确保分析框架的体系化和逻辑性,简单来说就是先分析什么,后分析什么,使得各个分析…

PHPShort轻量级网址缩短程序源码开心版,内含汉化包

需要网址缩短并且想获得更多有关链接点击率和流量的数据分析,那么 PHPShort 可能是一个非常好的选择。PHPShort 是一款高级的 URL 缩短器平台,可以帮助你轻松地缩短链接,并根据受众群体的位置或平台来定位受众。 该程序基于 Laravel 框架编写…

不同应用场景对于HDR ISP的需求

文章目录 HDR ISP HDR ISP 需求方面应用场景具体需求动态范围宽度安全监控系统需要非常宽的动态范围,以应对高对比度场景,如强光直射、夜间监控等,确保在极端光照条件下获取清晰图像。汽车辅助驾驶系统(ADAS)要求动态…

Java学习Day33:HTML 第三章:挟魂崖

1.js的DOM介绍 JavaScript中,dom是一套操作文档内容的方法,可以完成查、增、删、改(先删后增)的操作。而且dom的开发效率很高,还可以用于服务器渲染、weex 开发等。本文向大家介绍JavaScript中的dom。 1、什么是dom&am…

二叉搜索树:数据结构之美

目录 引言基础知识 定义性质操作详解 插入节点删除节点查找节点遍历 前序遍历中序遍历后序遍历高级主题 平衡问题AVL树简介应用案例总结 引言 二叉搜索树(Binary Search Tree, BST)是一种特殊的二叉树,它的每个节点具有以下性质:左子树上的所有节点的键…

Android开发语言Kotlin简介

官方认可:自 2017 年 Google 正式宣布 Kotlin 成为 Android 开发的官方语言后,它在 Android 开发中的流行度就有了显著提升。 与 Java 的兼容性:Kotlin 在设计时就考虑到了与 Java 的互操作性,这让开发者能够在 Android 项目中轻…

Postman接口自动化测试:从入门到实践!

前言 在软件开发过程中,接口测试是确保软件各组件之间正确交互的关键环节。Postman作为一款强大的API开发工具,不仅支持接口请求的发送与调试,还提供了丰富的自动化测试功能,使得接口自动化测试变得更加高效和便捷。本文将从Post…

机器人走路问题优化解法

public class Test53 {//假设有N个位置,记为1-N,N大于或等于2//开始机器人在M位置上(M为1-N中的一个)//如果机器人来到1位置,那么下一步只能向右来到2位置//如果机器人来到N位置,那么下一步只能向左来到N-1…

【算法题】找到任意一个峰值数字 要求时间复杂度为logn

在数组中找到一个峰值数字,‌其中峰值定义为比其相邻元素大的元素,‌可以使用二分查找算法来实现时间复杂度为O(log n)。‌ 以下是一个Java示例,‌演示如何在一个整数数组中找到任意一个峰值数字:‌ public class PeakFinder {p…

读取FTP中不同文件格式的文件流后导出到浏览器

序言 有一个新的需求&#xff0c;前端提供下载的入口&#xff0c;后端能将指定了全路径的各种文件格式的文件下载到浏览器。 对于压缩的zip文件格式需要解析后写入到txt文件格式的文件中&#xff0c;其他的写入原本的文件格式的文件中。 1、连接ftp <!-- jsch-sftp连接…

项目策划书六度自由双足机器人

一、项目的简要介绍 双足机器人的机构是所有部件的载体,也是设计双足机器人最基本的和首要的工作。本文根据项目规划和控制任务要求&#xff0c;按照从总体到部分、由主到次的原则&#xff0c;设计了一种适合仿人双足机器人控制的机构.文章首先从机构的设计目标出发&#xff0c…

【通俗理解】混合专家模型中的导诊与流程处理

【通俗理解】混合专家模型中的导诊与流程处理 关键词提炼 #混合专家模型 #导诊系统 #流程处理 #router #expert #token处理 第一节&#xff1a;混合专家模型中的导诊与流程处理类比 1.1 导诊与流程处理的类比 在混合专家模型中&#xff0c;导诊系统&#xff08;router&…

Android12 显示框架之Transaction----server端

目录&#xff1a;Android显示终极宝典 上篇讲完了在client端Transaction的内容&#xff0c;最后调用setTransactionState()把所有的参数都交给了surfaceflinger&#xff0c;那么任务就交给server来完成了。本节我们一起接着看看下面的内容。 setTransactionState() //framew…

学懂C++(四十五 ):深入详解C++ STL 容器:从基础到进阶

目录 1. 向量&#xff08;Vector&#xff09; 概念 特点 核心点 实现 适用场景 代码解析 2. 双端队列&#xff08;Deque&#xff09; 概念 特点 核心点 实现 适用场景 代码解析 3. 列表&#xff08;List&#xff09; 概念 特点 核心点 实现 适用场景 代码…

大模型备案重难点最详细说明【评估测试题+附件】

2024年3月1日&#xff0c;我国通过了《生成式人工智能服务安全基本要求》&#xff08;以下简称《AIGC安全要求》&#xff09;&#xff0c;这是目前我国第一部有关AIGC服务安全性方面的技术性指导文件&#xff0c;对语料安全、模型安全、安全措施、词库/题库要求、安全评估等方面…

设计模式(二):工厂模式

一&#xff0c;什么是工厂模式 工厂模式&#xff08;Factory Pattern&#xff09; 是一种创建型设计模式&#xff0c;它定义了一个用于创建对象的接口&#xff0c;而不需要显式地指定对象所属的具体类。换句话说&#xff0c;工厂模式将对象的实例化过程延迟到子类或其他工厂方…

【论文阅读】NGD-SLAM: Towards Real-Time SLAM for Dynamic Environments without GPU

arxiv上一篇很新的视觉SLAM论文&#xff0c;能够在不使用GPU的情况下进行语义分割的辅助运算。 一、跟踪流程 作为一个语义结合的视觉SLAM&#xff0c;其基本的思路和以前看过的DynaSLAM基本类似&#xff0c;都是依赖语义分割模型对场景中动态的特征点进行剔除&#xff0c;这…

【jvm】栈是否存在垃圾回收

目录 一、栈的特点1.1 栈内存分配1.2 栈的生命周期1.3 垃圾回收不直接涉及 二、堆与栈的区别三、总结 一、栈的特点 1.1 栈内存分配 1.栈内存分配是自动的&#xff0c;不需要程序员手动分配和释放。 2.每当一个方法被调用时&#xff0c;JVM就会在这个线程的栈上创建一个新的栈…