寫爬蟲時,有些數(shù)據(jù)pc端并不能提供我們需要的數(shù)據(jù)例如抖音,就需要對手機端數(shù)據(jù)進行抓取,目前來說比較常用的app抓包軟件:Fiddler,mitmproxy,Charles,這些軟件在進行數(shù)據(jù)抓包之前都需要進行相應的代理配置:下載,保證pc端跟手機端在同一個局域網(wǎng)內(nèi),證書下載,端口配置等。
利用Fiddler代理配置方法
首先在在官網(wǎng)將Fiddler下載,下載地址:http://www.telerik.com/fiddler;下載到本地之后,按正常的安裝流程即可。安裝后打開的頁面如下:

Fiddler抓取Android/Iphone的數(shù)據(jù)包,第一步,要保證電腦端Fiddler手機端跟電腦端在同一局域網(wǎng),在這種情況下才能夠實現(xiàn)Fiddler抓取手機端的數(shù)據(jù);同一局域網(wǎng)就是有兩臺或以上的設備連接,并擁有相同IP網(wǎng)段的網(wǎng)絡,例如pc端跟手機端連接同一個wifi,或者說電腦開熱點手機連接。
第二步,對Fiddler進行相關設置:打開【Fiddler -> Tools ->options】;然后選中【Connections】選項 ,圖中設置手機端需要連接Fiddler的服務器端口(一般默認即可),下面對選項[【Allow remote computers to connect】 (允許遠程發(fā)送請求)進行勾選。

打開【Fiddler -> Tools -> ?options】;選擇HTTPS選項,勾選【Decrypt HTTPS traffic】 下面選擇【from all process】選項,用來抓取手機端的https請求,如果想抓取https請求還需要在手機端安裝安全證書。


第三步,手機端安裝證書,先找到電腦的ip地址,在fiddler上方菜單欄里點擊Online就能看到電腦的ip地址;用手機訪問地址:http://IP地址:代理端口,點"FiddlerRoot certificate" 然后安裝證書,例如:http://192.168.1.173:8888;有的手機在安裝證書之前需要設置鎖屏密碼(例如小米),否則會安裝不上。
接下來就是對對手機端的wifi修改代理設置;打開連接中的wifi,點記下面的代理切換到手動,以pc端的ip名為主機名,端口為Fiddler設置的端口進行填寫,然后點擊確定即可。


配置成功結果如下:


利用Charles代理配置方法
Charles官方下載地址:https://www.charlesproxy.com/;下載Charles,然后一鍵安裝即可,下載后打開的頁面如下,頁面分為兩種標簽,一種是Structure,是按照域名進行區(qū)分;一種是Sequence,是按照訪問時間先后進行排序:


先對Charles軟件進行配置,打開客戶端,點擊菜單Proxy->Proxy Settings,設置服務器端口,自己也可以對端口進行修改,把下面【Enable ?transpaent ?HTTP ?proxing】勾選上為了是讓Charles自己設置成代理服務器實現(xiàn)抓包,對于本地系統(tǒng)發(fā)出的訪問請求都會被截取下來。如果只是用Charles對手機抓包,菜單上的Windows proxing 就不需要勾選,可以避免pc端訪問請求數(shù)據(jù)的干擾。


跟Fiddle一樣,需要把電腦端和手機端配置到同一局域網(wǎng);在獲取Charles端口之后,也需要得到電腦端的ip地址,電腦IP地址查詢方式:windows+R ?輸入cmd卡開命令行,然后輸入ipconfig,IPv4即為本機的IP地址。


更改手機端WiFi的代理及端口:


有些小伙伴可能在配置成功的時候,手機端會出現(xiàn)"wifi已連接,但無法訪問互聯(lián)網(wǎng)“的現(xiàn)象,這時候可以先把wifi代理先轉換成【無】,然后wifi斷連再重新連接,這時候WiFi可以正常使用之后再更改wifi的代理,更改主級名以及端口保存即可,這時候手機就可以正常訪問網(wǎng)絡了。
用win10的小伙伴們注意一下,在進行設置之前最好先把防火墻關閉,配置成功之后,Charles的頁面就如下圖:


避免抓取本地或者移動端http數(shù)據(jù)亂碼或者失敗,需要相應配置SSL證書,電腦端跟移動端都需要相應進行配置。
電腦端安裝證書,打開Charles客戶端,選擇菜單【?"Help" -> "SSL Proxying" -> "Install Charles Root Certificate"】


按步驟進行安裝即可;




在選擇證書儲存位置時,只要選【個人】即可,一般來說選擇的是第二項。



然后配置SSL的抓取域名:選中【"Proxy"->"SSL Proxying Settings"】,啟用【Enable SSL Proxying】選項,選擇add選項,Charles的Location配置是支持通配符的,因此在Host設置一個"*"就可以用來表示所有域名,port不用寫。


之后如果配置某一個指定域名的時候,這里的port可以設置為443即可,這樣就可以抓到指定域名的數(shù)據(jù);
手機端SSL證書安裝,打開Charles客戶端,點擊【"Help"-> "SSL Proxying" ->"Install Charles Root Certificate on a Mobile Device or remote Browser"】,


會出現(xiàn),如下頁面,意思就是讓你手機端設置一個代理:192.168.2.173:1111,就是要保證移動端與pc端在同一局域網(wǎng),然后用手機端瀏覽器訪問chls.pro/ssl:


下載成功后,需要手機端本地安裝,這里以紅米為例,小米手機安裝安全證書時需要提前設置解鎖密碼,否則安裝不了,以下就是安裝流程:


安裝完之后,就可以利用charles抓取手機端http的數(shù)據(jù)了。
mitmproxy收機抓包的相關配置
mitmproxy是一個支持HTTP和HTTPS的抓包程序,有類似Fiddler、Charles的功能,只不過它是一個控制臺的形式操作。
mitmproxy還有兩個關聯(lián)組件。一個是mitmdump,它是mitmproxy的命令行接口,利用它我們可以對接Python腳本,用Python實現(xiàn)監(jiān)聽后的處理。另一個是mitmweb,它是一個Web程序,打開它是一個監(jiān)視網(wǎng)頁,我們可以很清楚地觀察到mitmproxy捕獲的請求。這里是以windows為實例來進行演示。
下載方式分為兩種:一種是可以直接從官網(wǎng)中進行下載,網(wǎng)址:https://docs.mitmproxy.org/,另一種是借助于python安裝包pip,利用pip ?install ?mitmproxy命令;下載完之后,找到mitmproxy的下載目錄,把下載目錄配置到系統(tǒng)的環(huán)境變量中,配置環(huán)境變量的教程網(wǎng)上有很多,可以自行學習;方便使用,我們可以借助命令行測試一下,看mitmproxy是否安裝成功;windows不支持mitmproxy命令,但不影響,因為windows支持mitmdump和mitmweb命令。

這里可以能夠直接獲取得到mitmproxy的端口為8080,第二步跟Charles一樣,確保手機端與電腦端在同一局域網(wǎng),電腦端的IP地址獲取方式與Charles中一樣,配置成功后的mitmdump如下圖:


與Charles一樣,如果要通過mtmproxy抓取本地跟手機端的HTTP數(shù)據(jù),則電腦端與手機端也需要安裝相應的安全證書,安裝方式與Charles中介紹的方式一樣,證書的獲取地址為在c盤存放mitmproxy地址:【C盤 -> 用戶 -> 用戶名 -> mitmproxy】 。

