Python爬蟲120例之案例58,手機APP爬蟲,“武器庫”的準備and皮X蝦APP的測試
本篇博客開始,我們將涉足手機 APP 采集領域,這部分的知識我們主要以分析核心接口,編寫針對接口的突破代碼為主。
這里希望通過前面 57 篇爬蟲系列博客的學習,你已經可以通過不同的“手段”,去采集數據。
抓包工具 Fiddler
手機 APP 的采集與網頁爬蟲的采集一個最大的差異,就是需要抓取 APP 接口地址,因為我們沒有谷歌瀏覽器開發者工具的支持,所以需要使用 Fiddler 工具,進行抓包。
對于任何一款軟件,能讓其正常運行起來,就完成了 90%的工作。
fiddler 是一款收費軟件,官網:https://www.telerik.com/fiddler,有能力的建議購買,不想支付的可以選擇其它路徑,官方版本具備 30 天的試用期,我們就采用這個版本進行學習吧。
下載的時候,選擇 Classic 版本即可,-。
安裝過程就比較簡單了,基本遵循下一步原則即可,安裝完畢會出現如下網頁,注意這里先不要關閉,后續我們會用到里面的幾個配置文檔。
運行界面,呈現如下效果,一般不建議漢化了,因為沒有多少復雜操作,多用用就習慣了。
這里有個細節需要注意,當你打開 Fiddler 的時候,它就已經把 HTTP 的代理給修改了,所以會碰到當打開 Fiddler 時,可能無法正常的訪問網站,或者訪問的速度變慢。
Fiddler 默認是直接抓包的
如果不想要抓包,可以在 File->Capture Traffic 和左下角按鈕進行設置,快捷鍵是 F12。
默認能抓取的是 HTTP 請求的站點,稍后會說明 HTTPS 如何配置。
開啟抓包請求之后,去訪問網絡,會得到如下頁面,其中相關字段已經標注在下圖中。
上述圖片中的內容,一定要留下印象,方便后續的學習。
接下來雙擊上圖任意一個請求,查看右側窗口內容,下圖為你標記一下右邊窗口的內容都是什么。
在爬蟲的編寫過程中使用最多的是 Inspectors,它表示查看請求和響應的數據內容。
其余功能簡單描述如下:
Statistics: 查看關于 HTTP 請求的性能以及數據分析;
AutoResponder :允許攔截指定規則的請求,可以基于字符串和正則表達式做攔截,大意是將指定請求劫持后,使用本地版本;
Composer: 自定義請求發送服務器,可以新建,也可以直接拖拽一個過去;
Filters :請求過濾規則;
Timeline: 請求響應時間。
這些內容在后續都會逐步使用到。
下面完成最重要的一步,配置 fiddler,使其可以抓取 HTTPS 請求。
選擇開始菜單中的 Tool->Options -> HTTPS ,然后點擊下圖 Decrypt HTTPS Traffic,就可以安裝一個證書。
如果本步驟設置完畢了,還是不能獲取 HTTPS 請求,可以參考下述 2 篇博客解決相應問題。
- https://www.cnblogs.com/wsy0202/p/12404715.html - https://blog.csdn.net/baidu_28647571/article/details/107554126
通過共享熱點實現 fiddler 對手機 APP 抓包
這個步驟需要電腦可以打開 Wifi,并實現共享網絡,如果你使用的是臺式機,它可能沒有無線網卡,是不能共享網絡的(安裝外置網卡即可),筆記本電腦無該問題。
然后手機鏈接共享出去的 Wifi,接下來在 fiddler 中配置如下內容。
確定之后,需要在 fiddler 中找到下圖所示的本地 IP,例如下圖所示的 IP 地址為 172.24.203.1,這個地址很重要,結合上述的端口 8888,一會需要訪問該地址去下載一個證書到手機端。
手機鏈接該 Wifi,并設置如下代理。
此時還不可以,還需要在手機端下載證書,通過手機端默認瀏覽器打開 http://172.24.203.1:8888(確保 fiddler 是抓包狀態),如果手機端無法打開,重啟 fiddler。
打開之后,如下圖所示,點擊下圖紅線位置進行證書下載。
瀏覽器下載的證書如果點擊無法安裝,去手機設置里面找到下圖內容,每個手機的路徑不太一致,基本參考路線是 設置->通用設置->安全和隱私->更多->加密和憑據,然后點擊下面的從 SD 卡安裝,應該在根目錄下可以找到剛才下載的證書,點擊安裝即可。
安裝證書時,需要設置的內容,如下所示。
此時已經完整大部分工作了,如果你的 安卓系統是 7.0 以下,那到此就可以結束了,但如果你的版本比 7.0 高,那還需要繼續設置一些配置。
如果不確定是否可以,可以隨機打開手機上的 APP,然后再 fiddler 中查看是否可以解開 HTTPS 請求。
環境構建過程中,可以不時重啟 fiddler 確保配置生效。
使用 VirtualXposed+JustTrustMe 來繞過 SSL 驗證,實現抓包需求
在 github 下載上述兩款工具。
VirtualXposed:https://github.com/android-hacker/VirtualXposed/
JustTrustMe:https://github.com/Fuzion24/JustTrustMe/
無法下載,可以直接在我提供的 地址下載,安裝的時候發現 VirtualXposed 最新版本不支持 32 位 APP 了,如果需要抓取 32 位的 APP,需要安裝 VirtualXposed_0.18.2.apk 包 。
文件傳輸到手機上之后,全部進行安裝,然后打開 VirtualXposed ,點擊下面的按鈕之后選擇添加應用,模塊管理開啟 JustTrustMe,之后選擇重啟即可。
后續在 VirtualXposed 打開剛才加載的軟件,例如本次案例打開的是 “皮皮蝦 APP”,開啟 fiddler,成功捕獲到如下請求,這個地方就是最終的接口了。
復制接口地址,在本地瀏覽器打開,得到皮皮蝦的視頻評論數據。
https://is-hl.snssdk.com/bds/cell/cell_comment/?offset=10&cell_type=1&api_version=1&cell_id=7023269838151751943……其余部分隱藏
拿到接口之后,剩余的邏輯處理部分就比較簡單了,步驟依次如下:
分析接口參數
編寫代碼采集
精簡參數之后得到如下接口格式:
https://is-hl.snssdk.com/bds/cell/cell_comment/?offset=10&cell_id=7023269838151751943&aid=1319&app_name=super
爬蟲編碼時間
APP 爬蟲最難的地方是獲取接口,獲取到接口并分析之后,如果沒有加密參數,那直接采用之前博客中提及的任意一個庫或者框架,都可以完成爬蟲代碼的編寫。
收尾時間
==從本篇博客開始,我們將正式進入手機APP爬蟲部分,這部分內容大概會編寫10篇左右的博客==
今天是持續寫作的第
262
/ 200 天。
可以
關注
我,
我、
評論
我、
我啦。
Python 移動APP
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。