1. 說之前
受疫情影響,相信大部分人仍然還是處於在家遠程辦公的狀態,起初最簡單的遠程辦公,就是打打電話,發發微信,我們每天都在做。后來有了一系列工具,比如企業微信、各種線上會議工具、在線文檔等等,能夠把同事之間配合的效率提升起來,突破物理意義上的限制,不用到辦公室就能創造價值,在沒法線下聚集的時候,讓自己的工作不會中斷。
但是在大多數情況下,內部協同辦公只能解決內部效率問題。對於大多數企業、對於經營生意的老板們來說,辦公的目的是為了對外和消費者連接,和客戶連接,需要做生意,這樣才能真正的辦公起來。
換句話說,我認為遠程辦公的實質,除了讓大家能夠互相之間配合好、一起工作之外(意義不僅僅是單純的內部協作),后續真正有價值的一定是對外,讓企業員工能夠和外部的消費者連接起來。
當然我們今天的重點,並不是聊遠程辦公,遠程辦公的效率和質量,核心還是在於自我管理的自驅力。
在日常的工作中,無論是開發同學或是測試同學、運維同學,都少不了用到一些抓包工具,今天就給大家隆重推薦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這兩款。
希望這篇文章能幫到你!更多干貨文章請關注我們。