分析PC客户端抓包
分析App客户端抓包
以爬取某音乐PC客户端为例,实现网页内容爬取与分析。
任务描述:
终端协议是网络上设备之间通信规则的集合,通过终端协议可以获取PC客户端和App客户端数据。常用的PC客户端抓包工具有Wireshark、HTTP Analyzer等。
Wireshark适合几乎所有网络协议的分析,功能强大,但相对臃肿。HTTP Analyzer则更专注于对HTTP/HTTPS数据流的分析,还提供了针对某个进程进行抓包的功能。这里使用HTTP Analyzer工具实现酷我音乐PC客户端分析。
任务分析:
使用Chrome开发者工具,查找表单数据的提交入口。
使用Chrome开发者工具,查找需要提交的表单数据。
获取验证码图片,进行人工识别验证码。
使用POST请求方法登录。
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客户端数据为例,同样实现网页内容爬取与分析。
任务描述:
大多数爬虫的对象都是PC网页,但随着App客户端应用数量的增多,相应的爬取需求也越来越多,因此App客户端的数据爬取对于一名爬虫开发者来说是一项常用的技能。
本任务以Android系统的手机App客户端为例,介绍在PC端使用Fiddler工具对酷我音乐App客户端进行抓包,并爬取酷我音乐App客户端图片的方法与流程。
任务分析:
了解并设置Fiddler工具。
通过Fiddler工具得到酷我音乐App客户端的JSON格式数据。
利用Fiddler工具抓取的包,对酷我音乐App客户端的图片信息进行爬取。
Fiddler工具是位于客户端和服务器端之间的HTTP代理,也是目前最常用的HTTP抓包工具之一。
Fiddler工具能够记录客户端和服务器端之间的所有HTTP请求,可以针对特定的HTTP请求分析请求数据、设置断点、调试Web应用、修改请求数据等,甚至可以修改服务器端返回的数据,其功能非常强大,是Web应用调试的利器。
注意:本项目使用的是Fiddler Classic 5.0。
设置Fiddler工具的具体步骤如下。
打开Fiddler工具,单击“Tools”按钮并选择“Options”选项,如图所示。
勾选“Decrypt HTTPS traffic”复选框,Fiddler即可截获HTTPS请求,如图所示。
切换至“Connections”选项卡,勾选“Allow remote computers to connect”复选框,表示允许别的远程设备将HTTP/HTTPS请求发送到Fiddler,如图所示。
此处默认的端口号(即图中的“Fiddler listens on port”)为“8888”。
注意:端口号可以根据需求更改,但不能与已使用的端口号冲突。
重启Fiddler,即可完成设置。
使用Fiddler工具实现手机抓包,需要确保手机和计算机的网络在同一个局域网内,最简便的方法是让计算机和手机同时连接同一个路由器,由路由器分配设备的IP地址。
在命令提示符窗口中通过“ipconfig”命令查看计算机的IP地址,找到“无线局域网适配器WLAN”的“IPv4地址”并记录,如图所示。
成功获取计算机的IP地址和端口号后,在Android系统手机的Wi-Fi设置中,找到手机连接路由器的Wi-Fi,修改网络,即可对手机进行代理设置。
将“代理”设置为“手动”,填入获取到的计算机IP地址和端口号,点击“保存”按钮,如图所示。
在Android系统手机的浏览器中打开无线局域网IPv4网址的8888端口(本小节设置的安装证书网页为“http://192.168.137.42:8888”)
在网页中单击“FiddlerRoot certificate”证书的安装证书即可,如图所示。
设置完成Fiddler工具和Android系统的手机后,可用手机浏览器测试抓包百度首页。
通过手机浏览器打开百度首页,观察Fiddler工具左侧栏的“Host”中是否含有百度的信息,若含有百度的信息,则说明手机成功连接上Fiddler工具,如图所示。
打开酷我音乐App客户端首页,如图所示。
在Fiddler工具的左侧栏找到酷我音乐App客户端的信息,Fiddler工具抓取到的每个数据包都会在该列表中展示,单击具体的一个数据包后,可以在右侧单击“Inspectors”选项卡查看数据包的详细内容。
Fiddler工具的右侧主要分为请求信息(即客户端发出的数据)和响应信息(服务器端返回的数据)两部分。
在请求信息部分单击“Raw”按钮(显示Headers和Body数据),在响应信息部分单击“JSON”按钮(若请求数据或响应数据是JSON格式,则以JSON格式显示请求或响应的内容),结果如图所示。
最后解析、爬取、存储酷我音乐App客户端首页图片。