這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/ |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/ |
這個作業的目標 | <學習使用fiddler抓取數據> |
gitee 地址 | https://gitee.com/zane-kui/pupu.git |
【必做】基礎:使用 fiddler 抓包工具+代碼,實時監控朴朴上某產品的詳細價格信息
解題思路
1.學習使用fiddler抓包
2.軟件環境搭建
3.學習使用python語言編寫抓包數據獲取代碼
實現過程
可以使用fiddler爬取手機端的朴朴超市商品,證書安裝及配置過程這里就不贅述了。請看Fiddler配置及使用教程
也可以使用PC端微信小程序打開朴朴超市獲取數據。這里選擇使用pc端的微信小程序更便捷。
- 打開fiddler對商品進行獲取URL。
- 將得到的URL通過瀏覽器打開可獲得原始數據這里有我們所需要的關鍵信息
- 通過火狐瀏覽器可以直接將原始數據轉換為JSON格式,更直觀的看到獲取的信息。
- 商品信息獲取完成,這里使用IDEA進行python編程,在IDEA中安裝python插件
- 創建python工程,選擇python SDK,沒有此SDK的可直接選擇Add。
部分代碼說明
這里的商品信息在前面的火狐瀏覽器json展示中的data目錄下可以找到。
#添加請求頭
url = "https://j1.pupuapi.com/client/product/storeproduct/detail/deef1dd8-65ee-46bc-9e18-8cf1478a67e9/5eab5eeb-c405-4f88-9873-497426e2a1f3"
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat"
}
#獲取商品信息
name = json1["data"]["name"] # 商品名字
spec = json1["data"]["spec"] # 規格
price = str(int(json1["data"]["price"]) / 100) # 折扣價
market_price = str(int(json1["data"]["market_price"]) / 100) # 原價
share_content = json1["data"]["share_content"] # 詳細內容
print("-------------商品:" + name + "-------------")
print("規格:" + spec)
print("原價:" + price)
print("原價/折扣價:" + price + "/" + market_price)
print("詳細內容:" + share_content)
- 運行結果
這里設置了10秒的延時,每10秒獲取一次信息。
Gitee提交
- 在IDEA中使用git提交代碼到Gitee倉庫(具體使用idea上傳文件到Gitee流程請看
IDEA連接Gitee
)
Gitee倉庫展示
總結
本次的作業布置很有意思,也很感興趣,對爬蟲有過了解但還是有點陌生,Fiddler是目前最常用的http抓包工具之一,功能非常強大,使用起來也很便捷。但是對數據獲取的代碼無從下手,雖然在上學期以及這學期有在教授java,但是使用java編寫爬蟲程序有些許繁雜,最后選擇使用python編寫(因為python有各種爬蟲框架,能更方便高效的下載網頁,多線程、進程模型成熟穩定),在完成作業的過程中全程自學以及請教了多位同學也查詢了很多資料,看了一些教學視頻,在這過程中環境配置以及調試耗費時間比較多,通過網上查找以及請教同學最終解決問題,在與同學的互相交流中也得到了提升。對於進階和高階作業,待自己學習更多相關的知識能更熟練的應用后再進行完成。