Python App的信息爬取之Charles
- 2020 年 2 月 13 日
- 筆記
31/10
周四 晴

- 之前我們講解的都是Web網頁信息爬取,隨着移動互聯的發展,越來越多的企業並沒有提供Web網頁端的服務,而是直接開發App。
- App的爬取相比Web端爬取更加容易,反爬中能力沒有那麼強,而且響應數據大多都是JSON形式,解析更加簡單。 在APP端若想查看和分析內容那就需要藉助抓包軟件,常用的有:Filddler、Charles、mitmproxy、Appium等。 mitmproxy是一個支持HTTP/HTTPS協議的抓包程序,類似Fiddler、Charles的功能,只不過世它通過控制台的形式操作。 Appium是移動端的自動化測試工具,類似於前面所說的Selenium、利用它可以驅動Android、IOS等設備完成自動化測試。 今天介紹Charles

Charles的介紹
- Charles是一個網絡抓包工具,可以完成App的抓包分析,能夠得到App運行過程中發生的所有網絡請求和響應內容。
- 相關連接:
- 官方網站:https://www.charlesproxy.com
- 下載鏈接:https://www.charlesproxy.com/download

Charles主要功能:
* 支持SSL代理。可以截取分析SSL的請求。 * 支持流量控制。可以模擬慢速網絡以及等待時間(latency)較長的請求。 * 支持AJAX調試。可以自動將json或xml數據格式化,方便查看。 * 支持AMF調試。可以將Flash Remoting 或 Flex Remoting信息格式化,方便查看。 * 支持重髮網絡請求,方便後端調試。 * 支持修改網絡請求參數。 * 支持網絡請求的截獲並動態修改。 * 檢查HTML,CSS和RSS內容是否符合W3C標準。

18.2 Charles的配置
① 網絡共享配置:
- 實現手機通過電腦上網:就是電腦通過網線上網,然後共享Wifi,手機在鏈接此wifi。
查看本機電腦的網絡鏈接:

共享wifi設置:

手機鏈接此wifi,實現手機和電腦連接到同一個局域下

② 代理設置:
- 實現手機和電腦在同一局域網下的機上,完成Charles的代理設置:
首先查看電腦的打開Charles代理是否開啟,具體操作是:Proxy
-> Proxy Settings
,打開代理設置界面,設置代理端口為:8888.

打開手機的網絡配置,並設置使用代理配置:

③ 證書配置:
- 安裝完成後,我們還需要配置相關SSL證書 來抓取HTTPS協議的信息包。
- Windows系統:
- 首先打開Charles,點擊
Help
->SSL Proxying
->Install Charles Root Certificate
,即可進入證書安裝界面。 - 點擊 「安裝證書」 按鈕,就會打開證書導入嚮導。
- 點擊 「下一步」 按鈕,此時需要選擇證書存儲區域「將所有證書放入下列存儲」->點擊"瀏覽"->選擇「受信任的證書頒發機構」->"確定"->"下一步"->完成。
- 首先打開Charles,點擊
- Mac系統:
- 首先打開Charles,點擊
Help
->SSL Proxying
->Install Charles Root Certificate
,即可進入證書安裝界面。 - 接下來,找到Charles的證書並雙擊,將 「信任」 設置為 「始終信任」即可 。
- 首先打開Charles,點擊
IOS手機
:- 在網絡配置和代理開啟的情況下,若是你的手機是IOS系統,可以按照下面的操作進行證書配置。
- 在手機瀏覽器上打開chls.pro/ssl後,便會打開證書安裝頁面,點擊安裝即可。
- 在IOS手機上,點擊「設置」->"通用"->"關於本機"->"證書信任設置",設置開啟即可。
⑤ Charles 配置 HTTPS 代理的亂碼問題
- 在 Charles 設置 SSL 代理:
- Proxy –> SSL Proxying Setting –> Enable SSL Proxying
18.3 Charles的運行原理和具體使用
① 運行原理:
- 首先Charles運行在自己的PC上,Charles運行的時候會在PC的8888端口開啟一個代理服務,這就是一個HTTP/HTTPS的代理。
- 確保手機和PC在同一個局域網內,我們可以使用手機模擬器通過虛擬網絡連接,也可使用手機真機和PC通過無線網連接。
- 設置手機代理為Charles的代理地址,這樣手機訪問互聯網的數據包就會流經Charles,Charles再轉發這些數據包到真實的服務器,同理相反也是如此。
② 具體使用
- 手機運行App訪問要爬取的平台信息,使用Charles抓包分析。
- 知道了請求和響應的具體信息,通過分析得到請求的URL地址和參數的規律,直接使用程序模擬即可批量爬取。

之前介紹過Filddler:傳送門