网络爬虫中Fiddler抓取PC端网页数据包与手机端APP数据包

news/2024/11/16 7:55:49/文章来源:https://www.cnblogs.com/shclbear/p/18383646

 

 

1 引言

  在编写网络爬虫时,第一步(也是极为关键一步)就是对网络的请求(request)和回复(response)进行分析,寻找其中的规律,然后才能通过网络爬虫进行模拟。浏览器大多也自带有调试工具可以进行抓包分析,但是浏览器自带的工具比较轻量,复杂的抓包并不支持。且有时候需要编写手机APP爬虫,这时候就必须需要用到其他的专业抓包工具,例如本篇介绍的Fiddler。

2 Fiddler简介

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

当然,除了Fiddler之外,抓包工具还有Firebug、Wireshark、Httpwatch等,为什么我们要选择fiddler呢?原因如下:

  (1)Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。

  (2)Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用,总有一点杀鸡用牛刀的感觉。

  (3)Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,似乎稍显无力,而Fiddler 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。

3 Fiddler界面介绍

  Fiddler界面如下:

  Fiddler界面左侧的小窗口列表展示的是所有Fiddler抓取的包,各个包每个字段还有图标的含义如下表所示:

名称
含义
#
抓取HTTP Request的顺序,从1开始,以此递增
Result
HTTP状态码
Protocol
请求使用的协议,如HTTP/HTTPS/FTP等
Host
请求地址的主机名
URL
请求资源的位置
Body
该请求的大小
Caching
请求的缓存过期时间或者缓存控制值
Content-Type
请求响应的类型
Process
发送此请求的进程:进程ID
Comments
允许用户为此回话添加备注
Custom
允许用户设置自定义值

  数据包属性第一列的图标含义如下表所示:

   Fiddler界面右侧是用来显示选中数据报的详细信息,上半部分显示的是数据报的请求信息,下半部分显示的是回复信息:

4 PC端网页会话数据包捕获

4.1 HTTP会话数据包捕获

  Fiddler打开后,会自动将浏览器代理设置为“127.0.0.1:8888”,关闭时自动修改为原来的代理,这一点上Fiddler还是比较方便的。当然你也可以手动设置浏览器代理。开始抓包是必须确保猜到了file下的Capture Traffic是勾选上的,当然也可以通过下方的Capturing按钮开启或关闭。

  打开后,Fiddler会自动捕获所有HTTP会话信息。

4.2 HTTPS会话数据包捕获

  完成上述设置之后可以捕获HTTP协议下的会话信息,但现在的很多网站都采用HTTPS协议,用Fiddler不会就会出问题。百度首页采用的就是HTTPS协议,如下图所示,当我们尝试使用Fiddler不会访问百度首页时,出现捕获失败:

  所以,若是要捕获HTTPS协议会话信息,要进行进一步的配置。配置过程如下:

  第一步:打开Tools – Options,然后将弹出窗口内HTTPS选项下的所有可选项都勾选上。

   

  

   有的网上教程说到此点击OK就可以了,但事实证明,如果就设置到这一步,打开HTTPS网页会失败,出现警告“您的连接并不安全”,如下图所示。所以还要进行第二步操作。

  

  第二步:还是在第一步中打开的弹出窗口内,点击action,然后选择第二项,将证书到处到桌面。

  

   第三步:打开firefox浏览器,选项-隐私与安全,在最下面找到证书设置项,点击“查看证书”,导入在第二步中到处到桌面的证书,勾选两个信任之后确认退出。

   

   

  此时,再次打开百度首页,查看Fiddler捕获的信息,发现可以正常访问百度,且Fiddler没有报警报信息,且成功捕获如下所示:

5 手机端APP会话信息采集

  除了采集电脑浏览器的网页会话外,Fiddler还能采集手机APP的会话信息。当然,这还是需要经过一番设置才行。步骤如下:

  第一步:用电脑开启一个无线网(360WiFi、猎豹wifi等都可以实现),然后让手机通过电脑开启的无线网上网。

  第二步:依次点击打开Tools-Options-Connections,然后勾选第二项“Allow remote compute to connect”。

   

  

  第三步:到手机中将手机的网络代理改为电脑的fiddler。首先查看电脑的ip地址,然后在手机中一次打开“设置-无线和网络-wlan”,连接上电脑上刚创建的无线网,然后长按该无线网,依次点击“修改网络-显示高级设置-代理-手动”,将服务器主机名设置为电脑的ip地址,端口设置为8888。如下图所示:

   

   

  

  

  设置好后,我们Fiddler就可以成功捕获手机APP的会话信息了。

6 会话过滤功能

  当我们打开Fiddler进行会话捕获时,在默认情况下,Fiddler会不会所有的会话,这样就造成不会的会话过多,不利于我们分析,这时候我们可以用到Filters功能进行会话过滤。Filters三种过滤模式供选择:

  •   No Host Filter:不设置域名过滤;
  •   Hide the following Hosts:设置的这些域名相关会话将在左侧会话列表中被隐藏;
  •   Show only the following Hosts:只在会话列表中显示与设置的这些域名相关的会话;
  •   Flag the following Hosts:与设置的域名相关会话将在左侧会话列表中高亮想显示。

  如果要设置多个域名,域名之间用分号分开。切记,选好后要点击Actions按钮,然后点击Runfiltersets now让设置生效。如果我们只想显示百度和CSDN的会话信息,设置过程如下图所示:

  

7 总结

  Fiddler是一个功能强大的网络抓包工具,本文对如何用Fiddler抓取HTTP、HTTPS、手机APP会话数据报介绍了,另外还补充介绍了数据包过滤的功能。当然,Fiddler的功能远不止这些,不过本文介绍的操作用于一般的网络爬虫数据包分析足以。


 
 
 

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

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

相关文章

【Leetcode_Hot100】普通数组

普通数组 53. 最大子数组和 56. 合并区间 189. 轮转数组 238. 除自身以外数组的乘积 41. 缺失的第一个正数 53. 最大子数组和 方法一:暴力解 依次遍历数组中的每个子数组,进而判断res的最大值 超时 class Solution {public int maxSubArray(int[] nums) {int res = 0;for(int…

【python】基础之迭代器

1.总览2.迭代器介绍2.1:迭代器是一个实现了迭代协议的对象,它可以让我们遍历一个容器中的所有元素,而不需要知道容器的内部结构,迭代器可以用于遍历列表,元祖,字典,集合等容器类型; 2.2:迭代器的工作原理是通过实现两个方法:iter()和__next__()方法,iter()方法返回迭…

Java元注解介绍

Java四种元注解相关介绍 概述 注解从Java1.5引入以来,不断地简化我们编写代码的流程,逐渐的也成为了我们必学的一项技术。我们学习了各种注解,学习了他们的用法,学习了他们的限制,是否想过他们的组成呢,下面我将我对元注解的理解分享给大家。 元注解是用来修饰注解的注解…

RocketMQ在基金大厂的分布式事务实践

1 行业背景 基金公司核心业务主要分为:投研线业务,即投资管理和行业研究业务,体现基金公司核心竞争力 市场线业务,即基金公司利用自身渠道和市场能力完成基金销售并做好客户服务随互联网技术发展,基金销售渠道更加多元化,线上成为基金销售重要渠道。相比传统基金客户,线上…

从混乱到有序:10款建筑项目管理软件推荐

国内外主流的 10 款建筑企业项目管理系统对比:PingCode、Worktile、广联达、泛普软件、建文软件、Asana、Trello、Basecamp、Jira、Monday.com。在建筑行业,找到一个能够高效管理时间、成本和资源的项目管理系统常常是一项挑战。这种系统的选择不仅影响项目的流程和效率,还直…

begin-预览,不行啊还是太弱了

方便管理,主要是想熟悉下git的操作 先创建并且切换到一个新的分支: git commit --allow-empty -am "before starting PA1" git checkout -b PA1其中--allow-empty表示允许提交一个空的提交,git默认是不能提交一个空的提交信息,如果当前的文档没有什么修改,那么就…

nginx部署出现 Welcome to nginx! If you see this page 该如何解决

当你部署nginx的时候出现,ping域名网站可以通,但是访问不了网站怎么办,不用急,往下看; 1.问题所在其实出现以上的问题就代表你已经成功搭建好了nginx,只是现在默认访问的时候跳转到了nginx的首页问题。 2.解决方案 默认情况下,Nginx 安装后会使用默认配置文件,这些文件…

GLM-4-Flash 大模型API免费了,手把手构建“儿童绘本”应用实战(附源码)

GLM-4-Flash 大模型API免费了,我们本文基于免费API构建一个“儿童绘本”应用,包括使用文生图产出绘本故事插图……老牛同学刚刷到了一条劲爆的消息,GLM-4-Flash大模型推理 API 免费了:https://bigmodel.cn/pricing老牛同学一直觉得上次阿里云百炼平台为期 1 个月免费额度的…

CoreShop---.NET、Uni-App开发支持多平台的小程序商城系统

前言 小程序商城系统是当前备受追捧的开发领域,它可以为用户提供一个更加便捷、流畅、直观的购物体验,无需下载和安装,随时随地轻松使用。今天给大家推荐一个基于.NET、Uni-App开发支持多平台的小程序商城系统(该商城系统完整开源、无封装无加密、商用免费、支持二次开发、…

SQL server 特殊字符\u0000处理

某天,接到用户反馈点击某个项目分组的时候页面报错,点击其他项目不报错。初步以为是下标数字特殊符号导致的。通过前台输出对应的数值后发现该字段末尾有个“\u0000”特殊字符(ASCII字符char(0))。通常是导入数据时的格式问题或是程序处理时将页面中的换行字符保存数据库导…

Kettle: pentaho-server-ce-9.4 连接失败:ConnectionServiceImpl.ERROR_0009

pentaho-server-ce-9.4 数据库连接MYSQL8.0.37 , 测试连接失败, 提示: ConnectionServiceImpl.ERROR_0009-Connection to database [MYSQL8] failed .pentaho-server-ce-9.4 数据库连接MYSQL8.0.37 , 测试连接失败, 提示: ConnectionServiceImpl.ERROR_0009-Connection…