爬前叨叨
從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