當前位置:
首頁 > 知識 > Python 爬蟲:王者榮耀那些事!

Python 爬蟲:王者榮耀那些事!

運行平台:Windows

Python版本:Python3.x

IDE:Sublime text3

暑假回家,"小皇帝"般的生活持續了幾天,頭幾天還挺舒服,閑久了頓時覺得好沒意思。眼看著10天的假期就要結束,曾信誓旦旦地說要回家學習,可拿回家的兩本書至今一頁未翻,強烈的負罪感一直催促著:"你該學習了,你該學習了…"

我之前的爬蟲博客,爬的都是網頁的信息,什麼下載小說啊,下載動漫啊,下載帥哥圖、妹子圖啊。玩這些東西的時候,你想過爬取手機APP裡面的東西嗎?

程序員的鄙視鏈,您聽說過嗎?話說:老婆漂亮的程序員,鄙視老婆不漂亮的程序員;有老婆的程序員,鄙視沒有老婆的程序員;沒有老婆有女朋友的程序員,鄙視單身狗;在單身狗之間,才有語言、編輯器和操作系統的互相鄙視。不知為何,看到這句話的時候,我的內心陣陣絞痛。現在看看,這遊戲也是如此。玩星際的,鄙視玩dota的;玩dota的,鄙視玩lol的;玩lol的,鄙視玩王者榮耀的。雖說王者榮耀處於遊戲鄙視鏈的低端,但是不得不說,它確實有自己獨到的魅力,正因為它降低了玩家的門檻,才有了如今的全民王者的熱潮。你永遠不知道自己匹配的隊友和對手是老人,還是小孩。或者換種說法,是人,還是動物?

毫無疑問,王者榮耀從全民熱度等諸多表現上看,是非常成功的遊戲。可謂男女老少通吃,本文不討論到底是女大學生坑,還是小學生坑,這樣高難度的問題。咱玩點簡單的,讓我先看一款王者榮耀神器-王者榮耀盒子。《王者榮耀盒子》是專門為《王者榮耀》玩家量身打造的一款攻略應用,可謂上分必備神器,這裡有職業選手教你英雄出裝、銘文搭配和各種對線團戰技巧,同時它也整合最全的遊戲諮詢以及遊戲實時動態。先看看它長什麼樣:

GIF/885K

APP下載地址:APP下載–>點我

本節課的內容,就是爬取《王者榮耀盒子》這款APP上的信息,廢話不多說,直接開始實戰!

1 什麼是Fiddler?

Fiddler是位於客戶端和伺服器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能夠記錄客戶端和伺服器之間的所有 HTTP請求,可以針對特定的HTTP請求,分析請求數據、設置斷點、調試web應用、修改請求的數據,甚至可以修改伺服器返回的數據,功能非常強大,是web調試的利器。

既然是代理,也就是說:客戶端的所有請求都要先經過Fiddler,然後轉發到相應的伺服器,反之,伺服器端的所有響應,也都會先經過Fiddler然後發送到客戶端,基於這個原因,Fiddler支持所有可以設置http代理為127.0.0.1:8888的瀏覽器和應用程序。使用了Fiddler之後,web客戶端和伺服器的請求如下所示:

利用可以設置代理的這個特點,我們就可以對手機APP進行抓包了。怎麼設置?不急不急,讓我先把Fiddler安裝上吧!

Fiddler下載地址:Fiddler下載–>點我

傻瓜式安裝,一鍵到底。Fiddler軟體界面如圖所示:

2 手機APP抓包設置1 Fiddler設置

打開Fiddler軟體,打開工具的設置。(Fiddler軟體菜單欄:Tools->Options)

在HTTPS中設置如下:

在Connections中設置如下,這裡使用默認8888埠,當然也可以自己更改,但是注意不要與已經使用的埠衝突:

2 安全證書下載

在電腦瀏覽器中輸入地址: ,點擊 ,下載安全證書:

3 安全證書安裝

證書是需要在手機上進行安裝的,這樣在電腦Fiddler軟體抓包的時候,手機使用電腦的網卡上網才不會報錯。

將下載好的 安裝證書拷貝到手機中,然後進行證書安裝(以小米5手機為例),設置(Settings)->(系統和設備中的)更多設置->系統安全->從存儲設備安裝:

然後找到拷貝的 進行安裝即可。安裝好之後,可以在信任的憑證中找到我們已經安裝好的安全證書,在用戶中可以看到證書如下:

4 區域網設置

想要使用Fiddler進行手機抓包,首先要確保手機和電腦的網路在一個內網中,可以使用讓電腦和手機都連接同一個路由器。當然,也可以讓電腦開放WIFI熱點,手機連入。這裡,我使用的方法是,讓手機和電腦同時連入一個路由器中。最後,讓手機使用電腦的代理IP進行上網。

首先,查看電腦的IP地址,在 中使用命令 查看電腦IP地址。找到無線區域網WLAN的IPv4地址,記下此地址。

在手機上,點擊連接的WIFI進行網路修改,添加代理。進行手動設置,主機名即為上圖中找到的IP地址,埠號即為Fiddler設置中的埠號8888:

5 Fiddler手機抓包測試

上述步驟都設置完成之後,用手機瀏覽器打開百度首頁,我們就可以順利抓包了,截圖如下:

1 下載英雄圖片

先來個簡單的例子熱熱身,我想將《英雄聯盟盒子》中的英雄圖片下載下來,該如何操作?

GIF/1.4M

先使用Fiddler抓包看一下,在手機APP《英雄聯盟盒子》中的菜單中點擊 ,電腦Fiddler就會抓包如下:

可以看到,GET請求的url地址,和返回的JSON格式的信息。那麼編寫代碼如下:

從代碼運行結果中可以看到,百里玄策的英雄ID為104,他的圖片存放地址為 :

知道了這些信息,我們就可以將這些英雄的圖片進行下載了,編寫代碼如下:

運行上述代碼,看下結果,72個英雄的圖片,分分鐘搞定:

GIF/485K

是不是很簡單?接下來,再玩一個加點難度的。

2 英雄推薦出裝查詢助手

點擊 這個英雄,可以看到,裡面有他的簡介,包括技能介紹,以及推薦出裝等。那麼,我們就了利用這個做一個自己的英雄出裝查詢小助手吧。

GIF/596K

手機點擊 這個英雄,可以在電腦Fiddler看到如下抓包內容:

我們看下GET請求的URL:

很有特點發現了嗎?在url的heroid為104,在上個小實例中,我們發現,這個 正好是英雄的id,那麼是不是可以通過設置這個id來訪問不同的英雄界面呢?測試一下答案就出來了,我們將id改為103,也就是女媧的heroid,編寫代碼如下:

運行上述代碼,我們可以看到,列印的信息確實是英雄女媧的信息,返回的信息顯示,這個英雄還沒有上線。推薦出裝保存在 中,可以看到這裡沒有給出裝備的名字,只有裝備的 ,那麼在寫推薦出裝小程序之前,我們需要獲取所有裝備的ID。

怎樣獲取武器的信息?抓包方法同上,點擊裝備大全:

GIF/194K

通過Fiddler抓包信息,編寫代碼如下:

這樣我們就輕鬆得到了各個裝備的信息:

到這裡,我們就可以整合代碼了,首先通過獲取每個英雄的ID,然後根據每個英雄的ID,再獲得英雄的詳細信息,包括推薦出裝,最後通過推薦的裝備ID,找到裝備的信息並列印出來。

根據實現效果,自己編寫代碼試一試如何?《王者榮耀》出裝小助手,運行效果如圖所示:

如果功能已經實現了,那麼先恭喜一聲!上述功能代碼獲取地址: , 歡迎Follow、Star!

本文的例子沒有什麼實際價值,不過對於入門手機APP內容的爬取有一定的幫助作用。

趁著《王者榮耀盒子》APP沒有更新,很好爬,趕緊動手實踐吧!

爬取APP的內容和爬取網頁的思路是一樣的,都是通過抓包進行分析。

如有問題,請留言。如有錯誤,還望指正,謝謝!

PS: 如果覺得本篇本章對您有所幫助,歡迎關注、評論、頂!

本文出現的所有代碼,均可在我的github上下載,歡迎Follow、Star:

題圖:pexels,CC0 授權。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 編程派 的精彩文章:

自動化替換 Markdown 中的本地圖片引用
Django 如何實現全文檢索?
Python 非同步教程:Asyncio
如何正確閱讀計算機科學書籍?
如何寫出優雅的 Docstring?

TAG:編程派 |

您可能感興趣

王者榮耀 甄姬 cosplay
王者榮耀 女媧cosplay
榮耀Note10對比iPhoneX,誰才是真正的「王者」呢?
王者榮耀 孫尚香cosplay 你,也是本小姐的粉絲嗎?
王者榮耀 李白 妲己 cosplay
王者榮耀 cosplay 妲己帶你上分!
王者榮耀 大喬 cosplay
王者榮耀王昭君Cosplay
王者榮耀 cosplay 貂蟬,聖誕快樂~
王者榮耀 cosplay 虞姬?加勒比小姐
王者榮耀 紫霞仙子cosplay
王者榮耀 妲己 魅力之狐cosplay
王者榮耀 貂蟬異域舞娘 cosplay
《王者榮耀》大喬cosplay
【Android+windows+ios】迅雷王者歸來!!!
王者榮耀 安琪拉 cosplay
王者榮耀cosplay 滄海之矅大喬
王者榮耀 貂蟬cosplay 月光下邂逅的,是你,或者愛情
王者榮耀 公孫離 cosplay
華為Mate20Pro和iPhoneXS,誰才是拍照王者?