互聯網人必備:推薦4款爬蟲抓包神器

  • 2020 年 2 月 26 日
  • 筆記

閱讀全文大概需要 7 分鐘。

1. 說之前

受疫情影響,相信大部分人仍然還是處於在家遠程辦公的狀態,起初最簡單的遠程辦公,就是打打電話,發發微信,我們每天都在做。後來有了一系列工具,比如企業微信、各種線上會議工具、在線文檔等等,能夠把同事之間配合的效率提升起來,突破物理意義上的限制,不用到辦公室就能創造價值,在沒法線下聚集的時候,讓自己的工作不會中斷。

但是在大多數情況下,內部協同辦公只能解決內部效率問題。對於大多數企業、對於經營生意的老闆們來說,辦公的目的是為了對外和消費者連接,和客戶連接,需要做生意,這樣才能真正的辦公起來。

換句話說,我認為遠程辦公的實質,除了讓大家能夠互相之間配合好、一起工作之外(意義不僅僅是單純的內部協作),後續真正有價值的一定是對外,讓企業員工能夠和外部的消費者連接起來。

當然我們今天的重點,並不是聊遠程辦公,遠程辦公的效率和品質,核心還是在於自我管理的自驅力

公號也有一段時間沒有發表過原創文了,中間雖然也穿插了一些推文,比如昨天為朱少民教授打Call,推薦的一篇關於:內功修鍊:如何開展高效敏捷測試實踐?但追溯上一篇真正意義上屬於原創型的推文,還是對2019年公號的一個技術總結:2019年下,測試開發技術精選合集,為了回饋公號讀者,本周起,和去年一樣,保持每周至少一篇原創技術推文分享給大家。

在日常的工作中,無論是開發同學或是測試同學、運維同學,都少不了用到一些抓包工具,今天就給大家隆重推薦4款爬蟲抓包神器

2. 聊一聊:爬蟲抓包原理

爬蟲的基本原理就是模擬客戶端(可以是瀏覽器,也有可能是APP)向遠程伺服器發送 HTTP 請求,我們需要知道目標伺服器的 HOST、URI、請求方法、請求參數、請求頭、請求體。Web 網站通過 Chrome 瀏覽器可以找到這些資訊。但是對於 APP 爬蟲,就顯得有些束手無策。這時候必須借用一些抓包工具來輔助我們分析APP背後的秘密。而抓包本質是引入多了一層中間人代理,如下圖所示。

補充一個知識點,對於新手來說,需要區分抓包和爬蟲是兩個不同的概念:抓包是為了查看分析網路請求,是為了了解對方的過程。爬蟲則是模擬網路請求,當了解對方後模擬請求獲取數據的工具,兩者相輔相成,先抓包分析,再程式模擬,就是爬蟲的開發過程,以此來達到你爬蟲的目的。

3. 抓包神器一:Fiddler

Fiddler 是 Windows 平台最好用的可視化抓包工具,也是大家最熟知的 HTTP 代理工具,功能非常強大,除了可以清晰的了解每個請求與響應之外,還可以進行斷點設置,修改請求數據、攔截響應內容。

官網下載即可:https://www.telerik.com/fiddler

此外,還可以自定義規則,通過修改腳本,加入自己的特殊處理,不過因為它是 C# 編寫的,如果你要寫複雜的腳本,需要懂C#。

過濾器功能使得你可以通過正則表達式規則將你關心的請求顯示出來,如果你只需要抓特定網站的數據,這個功能就顯得非常有用,可以去除很多干擾資訊。

Fiddler 的左下角有個命令行工具叫做 QuickExec,允許你直接輸入命令,如上圖的命令行指示。

常見的命令有:

help:打開官方的使用頁面介紹,所有的命令都會列出來

cls:清屏

Select:選擇會話的命令

?.png:用來選擇 png 後綴的圖片

bpu:截獲 request

@ Host 高亮所有該主機的會話,如 @http://www.cnblogs.com/

=:等於指定請求方法 或者 狀態碼高亮顯示,例如輸入:=502

4. 抓包神器二:Charles

Charles 是一款支援跨平台的抓包工具,並且也是 macOS 平台下最好用的抓包分析工具之一,同樣提供GUI介面,介面簡潔,基本功能包括HTTP、HTTPS 請求抓包,支援請求參數的修改,最新的 Charles 4 還支援 HTTP/2。當然,也同時支援Windows 和 Linux, 不過這款工具是要收費的,免費試用 30 天,試用期過後功能受限。

Charles當前最新版本為4.5.6,官網地址如下:

https://www.charlesproxy.com

Charles 在線破解工具:

https://www.zzzmode.com/mytools/charles/

Charles也常用於一些簡單的弱網模擬工具,打開Proxy->Throttle Settings,介面如下:

PS:除此之外,模擬弱網的工具常見的還有:Fiddler、FaceBook工具ATC弱網模擬。

5. 抓包神器三:AnyProxy

AnyProxy 是 阿里巴巴開源的 HTTP 抓包工具,基於 NodeJS 實現,優點是支援二次開發,可自定義請求處理邏輯,如果你會寫JS的話,同時需要做一些自定義的處理,那麼AnyProxy 是非常適合的。支援 HTTPS,提供了GUI介面。GitHub地址:https://github.com/alibaba/anyproxy

常用特性:

  • 支援https明文代理
  • 支援低網速模擬
  • 支援二次開發,可以用javascript控制代理的全部流程,搭建前端個性化調試環境
  • 提供web版介面,觀測請求情況

anyproxy詳細使用介紹:

https://www.npmjs.com/package/anyproxy/v/3.10.2

6. 抓包神器四:mitmproxy

它不僅是跨平台的,而且提供的是命令行交互模式,很有極(zhuang)客(bi)感,而且是由Python語言實現的,對於Pythoner來說,無疑是一大利好福利。mitmproxy主要包含了 3 款工具:

  • mitmproxy: 帶交互的終端介面
  • mitmdump: mitmproxy 的命令行版本,類似於 tcpdump
  • libmproxy: 用於 mitmproxy/mitmdump 的庫

GitHub 地址:https://github.com/mitmproxy/mitmproxy

mitmproxy官網:

https://mitmproxy.org/

mitmproxy文檔介紹:

https://docs.mitmproxy.org/stable/

最後,分享一下,筆者目前最常用的抓包工具分別是Charles和mitmproxy這兩款。

希望這篇文章能幫到你!更多乾貨文章請關注我們。

如有疑問,請文末留言,最後,公號「測試開發技術」後台回復Python, 免費領取Python學習教程。

聲明:封面或正文部分圖片來源於網路,如有侵權,請聯繫刪除。

END

所有原創文章

第一時間發布至此公眾號「測試開發技術」

長按二維碼/微信掃碼 關注