Python3網路爬蟲實戰-6、APP爬
- 2020 年 1 月 3 日
- 筆記
除了 Web 網頁,爬蟲也可以對 APP 的數據進行抓取,APP 中的頁面要載入出來,首先需要獲取數據,那麼這些數據一般是通過請求伺服器的介面來獲取的,由於 APP 端沒有像瀏覽器一樣的開發者工具直接比較直觀地看到後台的請求,所以對 APP 來說,它的數據抓取主要用到一些抓包技術。
本書介紹的抓包工具有 Charles、MitmProxy、MitmDump,APP 一些簡單的介面我們通過 Charles 或 MitmProxy 分析找出規律就可以直接用程式模擬來抓取了,但是如果遇到更複雜的介面我們就需要利用 MitmDump 對接Python來對抓取到的請求和響應進行實時處理和保存,另外既然要做規模採集就需要自動化 APP 的操作而不是人工去採集,所以這裡還需要一個工具叫做 Appium,它可以像 Selenium 一樣對 APP 進行自動化控制,如自動化模擬APP的點擊、下拉等操作。
本節我們來了解一下 Charles、MitmProxy、MitmDump、Appium 的安裝方法。
1.6.1 Charles的安裝
Charles 是一個網路抓包工具,在做 APP 抓包的時候會用到,相比 Fiddler 來說,Charles 的功能更為強大,而且跨平台支援更好,所以在這裡我們選用 Charles 來作為主要的移動端抓包工具,用於分析移動 APP 的數據包,輔助完成 APP 數據抓取工作。
1. 相關鏈接
2.下載Charles
Charles 的官網是:https://www.charlesproxy.com,我們可以在官網下載最新穩定版本,鏈接為:https://www.charlesproxy.com/…,它支援 Windows、Linux、Mac 三大平台。
3. 證書配置
現在很多頁面都在向 HTTPS 方向發展,HTTPS 通訊協議應用越來越廣泛,如果一個 APP 通訊應用了 HTTPS 協議,那它通訊的數據都會是被加密的,常規的截包方法是無法識別請求內部的數據的。Python學習q-u-n 七八四,七五八,二一四 工具,各類實戰操作分享 安裝完成之後如果我們想要做 HTTPS 抓包的話還需要配置一下相關 SSL 證書,如果不配置的話無法抓取 HTTPS 請求。
點擊 Help->SSL Proxying->Install Charles Root Certificate,即可進入證書的安裝頁面。 接下來找到 Charles 的證書雙擊,將信任設置為始終信任即可,如圖 1-48 所示:

圖 1-48 證書配置 這樣就成功安裝了證書。
iOS
如果你的手機是 iOS 系統,可以按照下面的操作進行證書配置。 首先查看一下電腦的 Charles 代理是是否開啟的,點擊 Proxy->Proxy Settings 即可打開當前代理設置頁面,確保當前的 HTTP 代理是開啟的,如圖 1-49 所示:

圖 1-49 代理設置 例如這裡的代理埠為 8888,也可以自行修改。 接下來將手機和電腦連在同一個區域網下,例如當前電腦的 IP 為 192.168.1.76,那麼首先設置手機的代理為 192.168.1.76:8888,設置如圖 1-50 所示:

圖 1-50 代理設置 設置完畢之後電腦上就會出現一個提示窗口,詢問是否信任此設備,如圖 1-51 所示:

圖 1-51 提示窗口 點擊 Allow 即可,這樣手機就和 PC 連在了同一個區域網內了,而且設置了 Charles 的代理,這樣 Charles 即可抓取到流經 APP 的數據包了。 接下來我們再安裝 Charles 的 HTTPS 證書。 在電腦上打開 Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser,如圖 1-52 所示:

圖 1-52 證書安裝頁面入口 即可看到如下提示,如圖 1-53 所示:

它提示我們在手機上設置好 Charles 的代理,我們剛才已經設置好了,然後在手機的瀏覽器中打開 chls.pro/ssl 下載證書,我們在手機上打開這個鏈接。 打開之後便會彈出證書的安裝頁面,如圖 1-54 所示:

圖 1-54 證書安裝頁面 我們點擊安裝,然後輸入密碼即可完成安裝,如圖 1-55 所示:

圖 1-55 安裝成功頁面 如果你的 iOS 版本是 10.3 以下的話,此處信任 CA 證書的流程就已經完成了。Python學習q-u-n七八四,七五八,二一四教程影片,工具,各類實戰操作分享 如果你的 iOS 版本是 10.3 及以上,還需要在設置->通用->關於本機->證書信任設置將證書添加完全信任,如圖 1-56 所示: 在這裡將 Charles 的證書的完全信任開關打開即可,如圖 1-56 所示:

圖 1-56 證書信任設置 這樣 iOS 上配置信任 CA 證書的流程就結束了。
Android
如果你的手機是 Android 系統,可以按照下面的操作進行證書配置。 Android 同樣需要設置代理為 Charles 的代理,如圖 1-57 所示:

圖 1-57 代理設置 設置完畢之後電腦上就會出現一個提示窗口,詢問是否信任此設備,如圖 1-58 所示:

圖 1-58 提示窗口 點擊 Allow 即可。 接下來像 iOS 設備一樣,在手機瀏覽器上打開 chls.pro/ssl,這時會出現一個提示框,Python學習q-u-n 七八四,七五八,二一四 工具,各類實戰操作分享。如圖 1-59 所示: evernotecid://D603D29C-DFBA-4C04-85E9-CCA3C33763F6/appyinxiangcom/23852268/ENResource/p75

圖 1-59 證書安裝頁面 我們為證書添加一個名稱,然後點擊確定即可完成證書的安裝。
4. 結語
本文介紹了 Charles 的安裝及證書配置過程,後文我們會介紹 Charles 的基本使用方法。