Python3.x+Fiddler抓取APP數據
隨着移動互聯網的市場份額逐步擴大,手機APP已經佔據我們的生活,以往的數據分析都藉助於爬蟲爬取網頁數據進行分析,但是新興的產品有的只有APP,並沒有網頁端這對於想要提取數據的我們就遇到了些問題,本章以豆果美食APP爲例給大家演示如何提取手機的數據。
安裝Fiddler
Fiddler官網下載地址:http://www.fiddler2.com/fiddl...,我是直接在百度搜索的下載版本
安裝過程就是下一步下一步最後完成即可,安裝好了以後需要配置一些內容
設置允許抓取HTTPS信息包
打開下載好的fiddler,找到 Tools -> Options,然後在HTTPS的工具欄下勾選Decrpt HTTPS traffic,在新彈出的選項欄下勾選Ignore server certificate errors。這樣,fiddler就會抓取到HTTPS的信息包
設置允許外部設備發送HTTP/HTTPS到fiddler
在Connections選項欄下勾選Allow remote computers to connect
連通手機與電腦
想要抓取手機APP上的數據一大難點就在於,你並不知道他們數據請求的接口地址是多少,在PC端想要抓取一個網站的數據只要訪問網址,用抓包工具就可以知道了,所以我們第一步先把環境配置好,就是在手機上訪問地址(發送任何網絡請求)都可以在電腦上通過Fiddler抓取到。
第一步:先保障手機和電腦上面連接網絡,我這裏是電腦連的網線,我單獨安裝了一個Wi-Fi共享精靈,手機(iphone6s)連接上共享出去的wifi
第二步:查看電腦IP地址
先在電腦上打開cmd,輸入ipconfig查看IP地址
這裏要注意IP地址用的是無線網絡連接這個IP地址,不是本地連接的IP地址(坑點)
第三步:手機設置HTTP代理
打開手機無線網絡連接,選擇已經連接的網絡連接,點擊一個小圓圈歎號進入可以看到下圖,選擇配置代理,進入後把剛剛的IP地址輸入進去,端口就是Fiddler中設置的8888即可。
第四步:手機和電腦端安裝證書
電腦端訪問:http://localhost:8888/進行安裝
手機訪問電腦的IP地址加端口8888即可,我這裏的地址是:http://192.168.23.1:8888
第五步:測試通過
最後就是來測試下,打開手機隨便一個APP,去訪問裏面的內容,這時打開fiddler可以看到所發出的網絡請求,我這裏打開的是豆果美食APP
分析手機APP請求地址
通過觀察fiddler中的請求可以發現http://api.douguo.net/persona...,這個就是請求首頁中的部分數據,直接把地址複製到網頁中可以看到返回的JSON數據
其實這部分內容是最重要也是最困難的一個環節,考驗你工作年限的時候到了,要從中剝離出正確的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"))
運行代碼結果打印數據如下
圖片描述
後續對這個數據是存儲,還是分析就是後續的操作了,到此我們就已經完成了從手機APP中提取數據的步驟.
如果有什麼想法或者意見的話歡迎來加扣扣羣:862672474 大家一起來交流學習呀~ 羣裏面更有小夥伴整理好了python的學習資料哦~