Python爬蟲入門教程 41-100 Fiddler+夜神模擬器+雷電模擬器配置手機APP爬蟲部分
爬前叨叨
從40篇部落格開始,我將逐步講解一下手機APP的爬蟲,關於這部分,我們儘量簡化部落格內容,在這部分中可能涉及到一些逆向,破解的內容,這部分儘量跳過,畢竟它涉及的東西有點複雜,並且偏離了爬蟲體系太遠,有興趣的博友,可以一起研究下。
之前看到知乎有人對手機App爬蟲歸類,基本符合規則,接下來的10篇部落格可能集中在80%的App上,所以還是比較簡單的
- 50%的app,通過抓包軟體就可以分析出抓取引數並抓取到資訊。
- 30%的app,可能需要適當的反編譯,分析出加密演算法並抓取到資訊。
- 10%的app,可能加固,需要脫殼,然後反編譯,分析出加密演算法並抓取到資訊
- 10%的app,通過各式各樣的簽名,證書,裝置繫結等方法,隱藏加密演算法。
首先配置第一輪的環境,配置好了,下一篇部落格,就採用Fiddler+夜神模擬器[雷電模擬器]等實現美空APP的資料抓取工作
抓包
抓包是爬蟲裡面經常用到的一個詞,完整的應該叫做抓取資料請求響應包
,而Fiddler這款工具就是幹這個的,當然還有其他工具,後面的部落格中咱也會提及到
你可以百度關鍵字:Fiddler抓取手機APP 相關的部落格一大票~,哪篇部落格基本都可以叫你入門,所以你可以看看各家的,今天我這篇部落格主要寫的是Fiddler配合模擬器實現抓包操作。
百度Fiddler軟體,找到官網,下載按照流程安裝即可,當然你可以自己去找一個漢化版,這個看你使用百度的水平了,我使用的是4.0以上版本,建議你也使用這個吧,當然版本越高越好。
做一些簡單的配置
普通https抓包設定
開啟Fiddler ------> Options .然後開啟的對話方塊中,選擇HTTPS tab頁,如圖所示:
說明 (配置完後記得要重啟Fiddler)
- 選中"Decrpt HTTPS traffic", Fiddler就可以截獲HTTPS請求
- Ignore server certificate errors忽略證書錯誤
第一次會提示是否信任fiddler證書及安全提醒,選擇yes,之後也可以在系統的證書管理中進行管理。
配置Fiddler允許遠端連線
切換tab選項卡到 Connections
- 選中"Allow remote computers to connect". 是允許別的機器把HTTP/HTTPS請求傳送到Fiddler上來
等會設定手機代理時需要。設定好後重啟fiddler保證設定生效。
到現在為止,其實Fiddler已經可以抓取你電腦上瀏覽器訪問的資料了,如果不行,重啟Fiddler和瀏覽器即可
記錄本機的IP
開啟cmd視窗,不會的自行百度
在裡面輸入 ipconfig 獲取你的ip4地址 ,這個地址一定要記住,後面配置模擬器的時候是需要用的~
ip 192.168.137.1
下載模擬器
你可能更多的時候是使用模擬器來打遊戲,作為程式猿,模擬器上安裝APK是非常好用的。
自行下載安裝夜神模擬器,雷電模擬器或者其他的都可以
安裝完畢,長成這個樣子
下載APK檔案,直接拖拽到下面檢視,就可以直接安裝
找到設定,點選Wlan,長按滑鼠左鍵,出現如下介面
點選修改網路
代理模式選擇手動,輸入剛才的IP和上述提到的8888埠
使用模擬器預設瀏覽器開啟 http://192.168.137.1:8888, 點"FiddlerRoot certificate" 然後安裝證書,如圖:
安裝完畢之後,開啟模擬器上的瀏覽器,輸入www.baidu.com
在Fiddler中抓取到如下連結,代表環境配置已經完畢
溫馨提示下,在抓包過程中,你的fiddler不能關閉哦。關閉了之後你手機網路就不能用了。
停止網路監控的話去掉wifi的代理設定即可
設定過濾
1.手機上設定代理後,這時候fiddler上抓到的是pc和app所有的請求,如果pc上開啟網址,會很多,這時候就需要開啟過濾功能了。
2.開啟fiddler>Tools>Fiddler Options>HTTPS>…from remote clients only,勾選這個選項就可以了
- …from all processes :抓所有的請求
- …from browsers only :只抓瀏覽器的請求
- …from non-browsers only :只抓非瀏覽器的請求
- …from remote clients only:只抓遠端客戶端請求
Fiddler 抓包簡介
Fiddler想要抓到資料包,要確保Capture Traffic是開啟,在File –> Capture Traffic。開啟後再左下角會有顯示,當然也可以直接點選左下角的圖示來關閉/開啟抓包功能。
需要能簡單看懂Fiddler上的內容
更詳細的使用,可以參考一篇寫的很不錯的文章 參考部落格
上述橫著的紅色框
名稱 | 含義 |
---|---|
# | 抓取HTTP Request的順序,從1開始,以此遞增 |
Result | HTTP狀態碼 |
Protocol | 請求使用的協議,如HTTP/HTTPS/FTP等 |
Host | 請求地址的主機名 |
URL | 請求資源的位置 |
Body | 該請求的大小 |
Caching | 請求的快取過期時間或者快取控制值 |
Content-Type | 請求響應的型別 |
Process | 傳送此請求的程序:程序ID |
Comments | 允許使用者為此回話新增備註 |
Custom | 允許使用者設定自定義值 |
下面豎著的紅色框
圖示 | 含義 |
---|---|
請求已經發往伺服器 | |
已從伺服器下載響應結果 | |
請求從斷點處暫停 | |
響應從斷點處暫停 | |
請求使用 HTTP 的 HEAD 方法,即響應沒有內容(Body) | |
請求使用 HTTP 的 POST 方法 | |
請求使用 HTTP 的 CONNECT 方法,使用 HTTPS 協議建立連線隧道 | |
響應是 HTML 格式 | |
響應是一張圖片 | |
響應是指令碼格式 | |
響應是 CSS 格式 | |
響應是 XML 格式 | |
響應是 JSON 格式 | |
響應是一個音訊檔案 | |
響應是一個視訊檔案 | |
響應是一個 SilverLight | |
響應是一個 FLASH | |
響應是一個字型 | |
普通響應成功 | |
響應是 HTTP/300、301、302、303 或 307 重定向 | |
響應是 HTTP/304(無變更):使用快取檔案 | |
響應需要客戶端證書驗證 | |
服務端錯誤 | |
會話被客戶端、Fiddler 或者服務端終止 |
好了,文章到此結束了~~大家Fiddler用起來吧
下一篇,將寫一下如何爬取美空APP