#1.什麼是抓包?

首先解釋一下抓包的「包」到底是什麼:

指通過網路傳輸(發送,接收)的數據,稱之為數據包

我們通過瀏覽器訪問的無論是html、圖片、音頻都是通過接收被訪問的伺服器發送的一個個的數據包後由瀏覽器「翻譯」後再展示到我們的眼前。

更直觀的,我們可以用windows下的命令行(cmd)來執行"ping"命令:

ping www.zhihu.com

那麼「抓包」顧名思義:

抓包就是將網路傳輸發送與接收的數據包進行截獲、重發、編輯、轉存等操作

#2.抓包對爬蟲有什麼用?

通過抓包我們可以查看數據包的"header",從而得到數據包真正請求的網址。

已知乎為例,FPS遊戲有哪些知名的地圖?

這個頁面的上的數據並不是全部來自於我們在瀏覽器上看到的這個網址:

#3.利用Google Chrome的開發者工具抓包

在上面的例子中:

單擊右鍵,選擇「檢查」;或者直接摁下"F12",切換到"network"選項,然後刷新頁面

大的紅色方框中就是一個個「數據包」

數據包有很多類型:

在爬蟲中,我們一般用到的是"XHR","JS"和"DOC"

我們點擊第一個數據包:

在"header"欄中,可以看到這個數據包請求的網址等信息

在"preview"欄中,可以看到這個數據包的預覽(即瀏覽器把數據包「翻譯」的結果)模樣

在"response"欄中,可以看到這個數據包的真實模樣,本例中,則是一個html文檔

基本上對於一個數據包,我們需要查看的就是這三個選項

#4.利用fiddler抓包

Download Fiddler Web Debugging Tool for Free by Telerik?

www.telerik.com圖標

下載後在安裝的文件夾中打開Fiddler.exe,就可以對電腦上所有的網路傳輸進行抓包了。

打開後,我們在瀏覽器上重新刷新剛才知乎的那個頁面(使用了代理的需要關閉代理服務才能成功抓包)

可以看到我們在fiddler上看到了同樣的數據包,單擊打開,依次點擊Headers-Raw,我們可以看到和在瀏覽器上抓包的header一樣的內容

再依次點擊Transformer-Webview,對於瀏覽器的"preview"欄

再切換到Raw,則是對應於瀏覽器的"response"欄

#5.使用fiddler對手機上的APP進行抓包

第一步:更改fiddler的設置

Tools-Options-Connections,勾選"Allow remote computers to connect",並記住"Fiddler listens on port"的埠號:

再切到HTTPS,勾選以下兩項:

第二步:查看電腦的ip地址,cmd運行ipconfig

第三步:確保電腦與手機處於同一區域網下

如何判讀是否處於同一區域網?

ip地址的格式為:x1.x2.x3.x4,只要x1至x3相同,則是處於同一區域網下。

一般來說,讓電腦與手機連接同一個WiFi就能夠滿足此條件。

第四步:設置手機WLAN的代理

進入WLAN設置界面,進入正在連接的WiFi的「網路詳情」(一般來說就是點擊右側的小圓圈)

找到「代理」選項,選擇「手動」,「主機名」填入電腦的ip地址,「埠」填入在fiddler上的"Fiddler listens on port"的埠號,保存。

第五步:下載fiddlerRoot證書

設置好WLAN後,打開瀏覽器,輸入網址:剛才設置的代理ip:fiddler監聽埠號

訪問後會有如下界面:

點擊最下面的那個鏈接"FiddlerRoot certificate",完成下載並安裝。

完成這五步操作之後,我們就可以打開手機上的APP例如新浪微博,知乎等,並在電腦上抓包。

下一篇文章我將教大家使用python+fiddler爬取拉鉤APP

以上

推薦閱讀:

相关文章