受疫情影響,相信大部分人仍然還是處于在家遠(yuǎn)程辦公的狀態(tài),起初最簡(jiǎn)單的遠(yuǎn)程辦公,就是打打電話(huà),發(fā)發(fā)微信,我們每天都在做。后來(lái)有了一系列工具,比如企業(yè)微信、各種線(xiàn)上會(huì)議工具、在線(xiàn)文檔等等,能夠把同事之間配合的效率提升起來(lái),突破物理意義上的限制,不用到辦公室就能創(chuàng)造價(jià)值,在沒(méi)法線(xiàn)下聚集的時(shí)候,讓自己的工作不會(huì)中斷。
但是在大多數(shù)情況下,內(nèi)部協(xié)同辦公只能解決內(nèi)部效率問(wèn)題。對(duì)于大多數(shù)企業(yè)、對(duì)于經(jīng)營(yíng)生意的老板們來(lái)說(shuō),辦公的目的是為了對(duì)外和消費(fèi)者連接,和客戶(hù)連接,需要做生意,這樣才能真正的辦公起來(lái)。
換句話(huà)說(shuō),我認(rèn)為遠(yuǎn)程辦公的實(shí)質(zhì),除了讓大家能夠互相之間配合好、一起工作之外(意義不僅僅是單純的內(nèi)部協(xié)作),后續(xù)真正有價(jià)值的一定是對(duì)外,讓企業(yè)員工能夠和外部的消費(fèi)者連接起來(lái)。
當(dāng)然我們今天的重點(diǎn),并不是聊遠(yuǎn)程辦公,遠(yuǎn)程辦公的效率和質(zhì)量,核心還是在于自我管理的自驅(qū)力。
在日常的工作中,無(wú)論是開(kāi)發(fā)同學(xué)或是測(cè)試同學(xué)、運(yùn)維同學(xué),都少不了用到一些抓包工具,今天就給大家隆重推薦4款爬蟲(chóng)抓包神器。
2. 聊一聊:爬蟲(chóng)抓包原理爬蟲(chóng)的基本原理就是模擬客戶(hù)端(可以是瀏覽器,也有可能是APP)向遠(yuǎn)程服務(wù)器發(fā)送 HTTP 請(qǐng)求,我們需要知道目標(biāo)服務(wù)器的 HOST、URI、請(qǐng)求方法、請(qǐng)求參數(shù)、請(qǐng)求頭、請(qǐng)求體。Web 網(wǎng)站通過(guò) Chrome 瀏覽器可以找到這些信息。但是對(duì)于 APP 爬蟲(chóng),就顯得有些束手無(wú)策。這時(shí)候必須借用一些抓包工具來(lái)輔助我們分析APP背后的秘密。而抓包本質(zhì)是引入多了一層中間人代理,如下圖所示。
補(bǔ)充一個(gè)知識(shí)點(diǎn),對(duì)于新手來(lái)說(shuō),需要區(qū)分抓包和爬蟲(chóng)是兩個(gè)不同的概念:抓包是為了查看分析網(wǎng)絡(luò)請(qǐng)求,是為了了解對(duì)方的過(guò)程。爬蟲(chóng)則是模擬網(wǎng)絡(luò)請(qǐng)求,當(dāng)了解對(duì)方后模擬請(qǐng)求獲取數(shù)據(jù)的工具,兩者相輔相成,先抓包分析,再程序模擬,就是爬蟲(chóng)的開(kāi)發(fā)過(guò)程,以此來(lái)達(dá)到你爬蟲(chóng)的目的。
3. 抓包神器一:FiddlerFiddler 是 Windows 平臺(tái)最好用的可視化抓包工具,也是大家最熟知的 HTTP 代理工具,功能非常強(qiáng)大,除了可以清晰的了解每個(gè)請(qǐng)求與響應(yīng)之外,還可以進(jìn)行斷點(diǎn)設(shè)置,修改請(qǐng)求數(shù)據(jù)、攔截響應(yīng)內(nèi)容。
官網(wǎng)下載即可:https://www.telerik.com/fiddler
此外,還可以自定義規(guī)則,通過(guò)修改腳本,加入自己的特殊處理,不過(guò)因?yàn)樗?C# 編寫(xiě)的,如果你要寫(xiě)復(fù)雜的腳本,需要懂C#。
過(guò)濾器功能使得你可以通過(guò)正則表達(dá)式規(guī)則將你關(guān)心的請(qǐng)求顯示出來(lái),如果你只需要抓特定網(wǎng)站的數(shù)據(jù),這個(gè)功能就顯得非常有用,可以去除很多干擾信息。
Fiddler 的左下角有個(gè)命令行工具叫做 QuickExec,允許你直接輸入命令,如上圖的命令行指示。
常見(jiàn)的命令有:
help:打開(kāi)官方的使用頁(yè)面介紹,所有的命令都會(huì)列出來(lái)
cls:清屏
Select:選擇會(huì)話(huà)的命令
?.png:用來(lái)選擇 png 后綴的圖片
bpu:截獲 request
@ Host 高亮所有該主機(jī)的會(huì)話(huà),如 @http://www.cnblogs.com/
=:等于指定請(qǐng)求方法 或者 狀態(tài)碼高亮顯示,例如輸入:=502
4. 抓包神器二:CharlesCharles 是一款支持跨平臺(tái)的抓包工具,并且也是 macOS 平臺(tái)下最好用的抓包分析工具之一,同樣提供GUI界面,界面簡(jiǎn)潔,基本功能包括HTTP、HTTPS 請(qǐng)求抓包,支持請(qǐng)求參數(shù)的修改,最新的 Charles 4 還支持 HTTP/2。當(dāng)然,也同時(shí)支持Windows 和 Linux, 不過(guò)這款工具是要收費(fèi)的,免費(fèi)試用 30 天,試用期過(guò)后功能受限。
Charles當(dāng)前最新版本為4.5.6,官網(wǎng)地址如下:
https://www.charlesproxy.com
Charles 在線(xiàn)破解工具:
https://www.zzzmode.com/mytools/charles/
Charles也常用于一些簡(jiǎn)單的弱網(wǎng)模擬工具,打開(kāi)Proxy->Throttle Settings,界面如下:
PS:除此之外,模擬弱網(wǎng)的工具常見(jiàn)的還有:Fiddler、FaceBook工具ATC弱網(wǎng)模擬。
5. 抓包神器三:AnyProxyAnyProxy 是 阿里巴巴開(kāi)源的 HTTP 抓包工具,基于 NodeJS 實(shí)現(xiàn),優(yōu)點(diǎn)是支持二次開(kāi)發(fā),可自定義請(qǐng)求處理邏輯,如果你會(huì)寫(xiě)JS的話(huà),同時(shí)需要做一些自定義的處理,那么AnyProxy 是非常適合的。支持 HTTPS,提供了GUI界面。GitHub地址:https://github.com/alibaba/anyproxy
常用特性:
支持https明文代理支持低網(wǎng)速模擬支持二次開(kāi)發(fā),可以用javascript控制代理的全部流程,搭建前端個(gè)性化調(diào)試環(huán)境提供web版界面,觀測(cè)請(qǐng)求情況anyproxy詳細(xì)使用介紹:
https://www.npmjs.com/package/anyproxy/v/3.10.2
6. 抓包神器四:mitmproxy它不僅是跨平臺(tái)的,而且提供的是命令行交互模式,很有極(zhuang)客(bi)感,而且是由Python語(yǔ)言實(shí)現(xiàn)的,對(duì)于Pythoner來(lái)說(shuō),無(wú)疑是一大利好福利。mitmproxy主要包含了 3 款工具:
mitmproxy: 帶交互的終端界面mitmdump: mitmproxy 的命令行版本,類(lèi)似于 tcpdumplibmproxy: 用于 mitmproxy/mitmdump 的庫(kù)GitHub 地址:https://github.com/mitmproxy/mitmproxy
mitmproxy官網(wǎng):
https://mitmproxy.org/
mitmproxy文檔介紹:
https://docs.mitmproxy.org/stable/
最后,分享一下,筆者目前最常用的抓包工具分別是Charles和mitmproxy這兩款。