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,即可進入證書安裝界面。
    • 點擊 「安裝證書」 按鈕,就會打開證書導入嚮導。
    • 點擊 「下一步」 按鈕,此時需要選擇證書存儲區域「將所有證書放入下列存儲」->點擊"瀏覽"->選擇「受信任的證書頒發機構」->"確定"->"下一步"->完成。
  • Mac系統:
    • 首先打開Charles,點擊Help->SSL Proxying->Install Charles Root Certificate,即可進入證書安裝界面。
    • 接下來,找到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:傳送門