Python3.x+Fiddler抓取APP數據

隨着移動互聯網的市場份額逐步擴大,手機APP已經佔據咱們的生活,以往的數據分析都藉助於爬蟲爬取網頁數據進行分析,可是新興的產品有的只有APP,並無網頁端這對於想要提取數據的咱們就遇到了些問題,本章以豆果美食APP爲例給你們演示如何提取手機的數據。

安裝Fiddler

Fiddler官網下載地址:http://www.fiddler2.com/fiddl...,我是直接在百度搜索的下載版本html

安裝過程就是下一步下一步最後完成便可,安裝好了之後須要配置一些內容api

設置容許抓取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地址(坑點)iphone

第三步:手機設置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中提取數據的步驟

相關文章
相關標籤/搜索