随着移動網際網路的市場佔有率逐漸擴大,手機 APP 已經占據我們的生活,以往的資料分析都借助于爬蟲采集爬取網頁資料進行分析,但是新興的産品有的隻有 APP,并沒有網頁端這對于想要提取資料的我們就遇到了些問題,本章以豆果美食 APP 為例給大家示範如何利用Python爬蟲采集抓取提取手機APP資料。具體教程如下:
一、安裝 Fiddler
Fiddler 官網下載下傳位址:http://www.fiddler2.com/fiddl...,筆者是直接在百度搜尋的下載下傳版本
安裝過程就是下一步下一步最後完成即可,安裝好了以後需要配置一些内容
二、設定允許抓取 HTTPS 資訊包
打開下載下傳好的 fiddler,找到 Tools -> Options,然後在 HTTPS 的工具欄下勾選Decrpt HTTPS traffic,在新彈出的選項欄下勾選 Ignore server certificate errors。這樣,fiddler 就會抓取到HTTPS的資訊包。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90TQORTUq5ENnR0Tzw2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmLyADNzUjNxUTMxITNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
Python爬蟲采集抓取:Python3.x+Fiddler 采集抓取手機APP資料
三、設定允許外部裝置發送 HTTP/HTTPS 到 fiddler
在 Connections 選項欄下勾選 Allow remote computers to connect
Python爬蟲采集抓取:Python3.x+Fiddler 采集抓取手機APP資料
四、連通手機與電腦
想要抓取手機APP資料一大難點就在于,你并不知道他們資料請求的接口位址是多少,在 PC 端想要抓取一個網站的資料隻要通路網址,用抓包工具就可以知道了,是以我們第一步先把環境配置好,就是在手機上通路位址(發送任何網絡請求)都可以在電腦上通過 Fiddler 抓取到。
第一步:先保障手機和電腦上面連接配接網絡,我這裡是電腦連的網線,我單獨安裝了一個 Wi-Fi 共享精靈,手機(iphone6s)連接配接上共享出去的 wifi。
Python爬蟲采集抓取:Python3.x+Fiddler 采集抓取手機APP資料
第二步:檢視電腦 IP 位址
先在電腦上打開 cmd,輸入 ipconfig 檢視 IP 位址
Python爬蟲采集抓取:Python3.x+Fiddler 采集抓取手機APP資料( 軟币)
這裡要注意 IP 位址用的是無線網絡連接配接這個IP位址,不是本地連接配接的IP位址(坑點)
第三步:手機設定 HTTP 代理
打開手機無線網絡連接配接,選擇已經連接配接的網絡連接配接,點選一個小圓圈歎号進入可以看到下圖,選擇配置代理,進入後把剛剛的 IP 位址輸入進去,端口就是Fiddler 中設定的 8888 即可。
Python爬蟲采集抓取:Python3.x+Fiddler 采集抓取手機APP資料
第四步:手機和電腦端安裝證書
電腦端通路:http://localhost:8888/進行安裝
Python爬蟲采集抓取:Python3.x+Fiddler 采集抓取手機APP資料( 軟盟網)
手機通路電腦的IP位址加端口8888即可,我這裡的位址是:http://192.168.23.1:8888
Python爬蟲采集抓取:Python3.x+Fiddler 采集 抓取手機APP資料
第五步:測試通過
最後就是來測試下,打開手機随便一個 APP,去通路裡面的内容,這時打開 fiddler 可以看到所發出的網絡請求,我這裡打開的是豆果美食 APP
Python爬蟲采集抓取:Python3.x+Fiddler 采集抓取手機APP資料
分析手機APP請求位址
通過觀察 fiddler 中的請求可以發現 http://api.douguo.net/persona...,這個就是請求首頁中的部分資料,直接把位址複制到網頁中可以看到傳回的JSON資料。
Python爬蟲采集抓取:Python3.x+Fiddler 采集抓取手機APP資料
其實這部分内容是最重要也是最困難的一個環節,考驗你工作年限的時候到了,要從中剝離出正确的 API 請求,并分析 API 中的資料結構,為後續資料分析做準備。
Python3.x 爬蟲擷取資料
這裡直接通過 urllib.request 進行請求即可,這裡并沒有使用架構,代碼如下:
import urllib.request
# 向指定的url位址發送請求,并傳回伺服器響應的類檔案對象
response = urllib.request.urlopen("http://api.douguo.net/personalized/home/0/20")
# 伺服器傳回的類檔案對象支援Python檔案對象的操作方法
# read()方法就是讀取檔案裡的全部内容,傳回字元串
html = response.read()
# 列印響應内容
print(html.decode("unicode_escape"))
運作代碼結果列印資料如下
Python爬蟲采集抓取:Python3.x+Fiddler 采集抓取手機APP資料
後續對這個資料是存儲,還是分析就是後續的操作了,到此我們就已經完成了從手機APP提取資料的步驟。
部分内容參考自:www.ruanbe.com