为什么要使用fiddler
最近爬了好多网站,每个网站的访问方式、翻页方式都各有特色,每次我都要在第一步卡很长时间,这个时候正确使用抓包工具就是很有必要的了。
因为我们爬虫其实就是模拟浏览器去访问网站,而抓包工具是监测我们访问网站的,我们可以用浏览器访问一次即将要爬取的网站,然后在fiddler中查看http请求行的数据,如headers内容、data内容等,然后模仿浏览器访问的这些数据。 只要我们程序的http请求和正确访问时的数据是一样的,我们的结果一定返回的是正确的页面。
如果我们获取的不是我们想要的结果,就还是要和正确的做对比。
fiddler常用的功能介绍
查看访问网站的一些数据
下图是我访问网站时,fiddler展示的界面
① 我们访问了哪些网站?
fiddler的左侧白色背景那一栏就向我们展示了我们访问了哪些网站,包括用浏览器访问的和我们自己用程序访问的。
当我们点击某一具体网站时,右侧会展示关于访问此网址的具体信息。
②网站的内容在哪里看?
右侧下方的区域就是有此网站的内容,其中我常用到的两个为webview和textview。webview展示的就是你在此网站当前看到的页面,即你用浏览器打开看到的东西,这主要便于我们爬虫时看我们访问的页面是否为想要的页面,而textview就是他的网页源代码。
③http请求头在哪里看?
通常我们访问不到想访问的页面都是因为缺少http中的某些参数,如header或者data中的某项至关重要的数据。我们通过右侧上方那一栏的raw就可以看到你此次访问此网站的http头。这样当我们程序访问不到网址时,我们就可以对比我们请求网址的http头和浏览器访问时的http头,看有什么区别,修改成和浏览器一样时,就会得到正确的结果啦!
使用composer功能
上面说的对比正确访问时 和错误访问时的http头,然后将我们程序的头改成和正确访问时的一样的头就可以正确访问了。但是有时候决定能否成功访问的可能仅仅是一句话,我们没必要把全部的头都加上,而且加上cookie什么的可能还会影响我们的访问。
所以这时候就需要composer了! 我们可以在fiddler中把左侧白色背景中某次浏览器访问此网址的记录拖到composer处,即从左边拖到右边就看到下面的界面。
我们获得了三部分,也就是http请求的三个部分,然后为了找出来哪些东西是我们访问网站的必要条件,我们就使用如下方法:即逐条删除然后点击右上角的Execute。 举个例子:就是我们在第二部分中把cookie那一行删掉,然后点击右上角的Execute,然后看执行的结果如果是我们想要的页面,证明cookie不是访问此网页的必要条件,我们的程序中不需要携带这一条。