抓取网页数据工具(本文将从Fiddler2下载安装、具体应用以及如何防止被抓包)

优采云 发布时间: 2022-04-06 07:03

  抓取网页数据工具(本文将从Fiddler2下载安装、具体应用以及如何防止被抓包)

  《文末高能》

  编辑 | 哈比

  http 协议是 Internet 中使用最广泛的协议,几乎所有的 Web 应用程序和移动应用程序都使用 http 协议。

  Fiddler2作为一款基于http协议的免费抓包工具,功能非常强大。它可以捕获通过http协议传输的数据包,让你的信息无处可藏。

  这篇文章会简单直接的讲解Fiddler2的下载和安装,具体的应用,以及如何防止抓包。

  一、为什么 Fiddler2 的名字后面是 2 而不是 Fiddler?

  虽然这似乎是一个无聊的问题,但确实让我纠结了一阵子,也许有点强迫症。

  刚开始用Fiddler的时候,总是写成Fiddler2,这样叫,但是有一天发现有一个Fiddler4,瞬间就明白是怎么回事了。原来,数字 2 并不是 Fiddler 名字的一部分,而是一个大版本号。

  但是全网搜索了半天,包括去官网,都没有找到Fiddler3。到目前为止,最新的一个是 Fiddler4。全网用得最多的是Fiddler2和Fiddler4。

  二、Fiddler的本质是服务器的代理

  启动 Fiddler 后,Fiddler 会默认代理当前计算机或服务器,地址和端口为 127.0.0.1:8888,所以向当前计算机发送的 http 请求或服务器会先经过127.0.0.1:8888的代理地址,再转发到真正的访问地址。

  Fiddler相当于在客户端和服务器之间安装了一个中继,负责转发。然后,Fiddler 获取到客户端和服务端的交互数据后,通过数据整理和分析展示来自 Fiddler 客户端的结果,甚至可以通过 Fiddler 修改请求数据。

  当 Fiddler 关闭时,Fiddler 会自动退出代理。这就是 Fiddler 实现抓包的基本原理。

  三、Fiddler 下载安装

  Fiddler客户端可以从该地址下载。

  选择任何使用理由,输入您的电子邮件地址,选中“我接受 Fiddler 最终用户许可协议”选项,然后单击下载。

  下载的安装包:

  一路下一步完成安装,最新版本为Fiddler4。

  四、使用Fiddler基于http协议抓取网页网站数据

  打开Fiddler,整个界面分为三块,块1是当前计算机与外网交互的地址信息,包括请求结果、请求协议、访问域名、url地址、返回字节数。

  Block 2是请求信息,包括header头信息、请求地址、请求参数等。 Block 3是服务器响应信息。根据返回结果的形式不同,可以分为网页返回和数据返回两种。

  返回的结果是一个 HTML 页面

  我们以访问热门聊天为例进行分析。

  从图中可以看出,host栏代表访问的域名,这里是协议列表,这里是http,URL栏显示请求路径,这里是/gitchat/hot,Body栏代表返回的结果字段数,Content-Type列表示返回内容的类型,这里是html,最后一个Process列表示进程名。

  一般来说,我们只需要关注Host、URL、Body和Content-Type这几个列。从Body列的字节大小,我们可以快速判断哪些请求返回的数据量大,然后根据Content-Type判断返回的内容。类型。

  在上面红*敏*感*词*标所在的行中,我们可以看到热门列表页面返回了很多内容,返回类型为html页面。让我们看看块 3 的结果。

  我们切换到“SyntaxView”选项卡,可以看到热门聊天的html页面的源码,说明请求这个地址后,服务器返回html。

  返回结果为数据

  访问百度网页,发现红框内的请求返回了大量数据,返回类型为“application/javascript”,于是查看返回结果,我们切换到“SyntaxView”选项卡,可以看到一堆可识别的数据,如下:

  我们选择以“JSON”格式查看,如下:

  一般情况下,我们在目标不是很清楚的情况下使用Fiddler抓包,也就是说我们不知道这个网站的哪个地址会抓包,也不知道会是哪个地址捕获。什么数据,就在浏览这个网站的过程中,通过Fiddler的请求分析,可能有什么数据有用。

  这些数据往往是在网站或APP上正常运行时看不到的数据,而这些隐藏的数据可以通过Fiddler的爬取获取。

  Fiddler 也经常被用作爬虫的辅助工具。首先使用Fiddler对目标网站或者APP进行过滤,抓取可以获取目标数据的url和参数,然后通过爬虫访问这些url和参数。爬到目标数据。

  一般通过接口返回数据的情况在APP中比较常见。比如这个链接“”就是爬取一个APP得到的数据接口,直接访问这个链接,可以看到JSON格式的数据源。

  五、使用Fiddler基于https协议爬取新浪微博

  Fiddler除了抓取http协议的数据外,还可以抓取https协议的数据,不过需要额外配置,如下:

  依次打开菜单栏中的Tools>Options>HTTPS选项卡,勾选“Decrypt HTTPS traffic”选项和“Ignore server certificate errors (unsafe)”选项,重启Fiddler。这时候如果基于https协议访问网站,就可以抓取到网站的信息。我们以新浪微博为例。

  可以看到,大部分抓到的图片都是图片,其中一张应该不会返回2907字节。我们来看看返回的结果。

  从备注来看,这应该是服务器的一些证书信息。让我们看看有哪些图片。

  张一山?

  极光之恋?

  奇门遁甲?

  当然,这些照片都是来自新浪微博首页的照片。想看的话直接上首页。你不需要使用 Fiddler 来抓取它。这只是一个例子。如果你掌握了抓取https协议数据的方法,就可以看到显示的页面了。数据,当然也可以看到网页上无法显示的隐藏数据。这取决于个人。

  剑术已经交给你了。至于用它来杀猪还是做侠客,你说了算。

  六、使用Fiddler抓取手机APP的通讯数据

  要抓取手机的通讯数据,需要同时配置Fiddler和手机。过程稍微复杂一些。我将在下面详细解释。

  第一步是配置Fiddler允许远程连接,如图:

  依次打开菜单栏中的工具>选项>连接选项卡,勾选“允许远程计算机连接”选项,允许远程服务器连接,重启Fiddler。

  第二步,将手机上安装Fiddler的电脑设置为手机的代理地址。

  找到手机已经连接的wifi网络,点击弹出修改,在高级代理中找到代理设置,将代理设置改为手动,然后会出现设置代理地址和端口的输入框(不同手机的操作过程会略有不同,最终目的是设置手机的代理地址,可以根据手机品牌和型号的不同在百度上搜索相关设置方法)。

  设置代理地址。

  代理地址是您打开 Fiddler 的计算机的内网 IP 地址。在window系统中,可以在cmd命令模式下输入ipconfig,查看当前计算机的内网IP地址。我的电脑 IP 地址是 192.168.1.34。

  代理端口填写8888,点击保存,如下图:

  第三步,访问代理地址,下载安装证书,完成配置。

  下载并安装证书:

  以下是 Fiddler 中捕获的数据:

  同样的,网页中可以抓取的数据可以在APP上抓取,甚至更多隐藏的数据也可以在APP上抓取,因为大部分APP都是通过接口的形式与服务器通信的。接口中会收录大量数据,可以直接抓取接口地址和参数,直接调用接口获取数据。

  本文主要讲解Fiddler的使用方法和场景,示例中尽量避免敏感内容。Fiddler 是一把双刃剑,可以同时捕获合法数据和私人数据。请遵守规则。

  七、使用Fiddler设置断点修改Response

  Fiddler不仅可以用来捕获通信数据,还可以用来修改请求内容和服务器响应结果。这个函数一般用的比较少,一般用于前端开发中的调试,这里就简单介绍一下。

  在菜单栏中,点击rules->automatic Breakpoints->选择断点方式,有两种方式,一种是在请求前进入断点,在i中是在服务器响应后设置断点,其实就是返回请求内容和服务器。结果集断点的两种情况。

  比如我们选择在请求之前进入断点。这时候,一旦我们使用浏览器访问某个页面,请求发出后,就会停留在Fiddler中。这时候我们可以改变请求中的数据,然后进行后续的操作,从而使服务器接收到的请求被修改。

  同样,修改服务器响应后的数据直接修改服务器返回的结果。

  这种技术在实践中很少使用。如果有人对此感兴趣,可以在评论中提出,我会在后续的交流中详细说明。

  八、关于反Fiddler爬取的一些思考

  因为Fiddler的功能非常强大,所以我们在开发产品的时候要尽量避免Fiddler的爬行,尤其是APP与服务器通信的时候,更要注意接口的严谨性和安全性。考虑从以下内容开始:

  APP接口制作时,与接口通信的数据尽量在传输前进行加密,不要使用明文,这样会在很大程度上避免数据被抓取;

  接口返回的数据尽量少,也就是APP需要什么数据,不要因为偷懒就返回所有数据,这样一旦抓到数据,就比APP要的数据多当前接口业务将被泄露;

  必须对参数进行严格验证,防止有人恶意猜测构造参数,非法访问服务器。

  这次是关于 Fiddler 数据捕获的话题。有问题的同学可以留言提问,也可以在阅读圈提问。看到后,我会尽快回复您。感谢您的参与。

  九、注意事项

  在使用Fiddler爬取网页传输数据的时候,经常会遇到一些人无法爬取的问题,尤其是https协议的网站,数据在Fiddler上根本不显示。

  经过反复尝试,我发现问题出在浏览器上。某些浏览器可能会阻止代理。通过这些浏览器访问的网页不会在 Fiddler 上显示数据。感觉代理无效。

  目前测试发现360浏览器100%屏蔽Fiddler,谷歌浏览器会屏蔽一部分。具体的阻塞规则还没有深入研究。另外,IE浏览器完全支持Fiddler,几乎没有做任何屏蔽。上面例子中的数据抓取都是用IE浏览器演示的。

  因此,在实际使用中,建议先使用IE浏览器进行数据采集

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线