當前位置:
首頁 > 知識 > 用代碼向 90 後逝去的青春致敬

用代碼向 90 後逝去的青春致敬

(點擊

上方藍字

,快速關注我們)




來源:

stormdony 投稿


https://mp.weixin.qq.com/s/3DriToN683X_74bQKQCX3Q




前段時間,騰訊宣布停止樂斗Ⅱ和QQ寵物的運營,然後就訂閱號里就被各種回憶殺的推文刷屏了。今天也來稱蹭一下"熱點",雖然有點晚。




都說「陪伴是最長情的告白」,那些陪我們走過年少時光的小遊戲,你還記得多少?


可能很多90後都玩過樂斗Ⅱ。但是很遺憾,今天的主角不是它,而是它的兄弟——「Q寵大樂斗」。




今天分享的是:如何使用 selenium 的奇技淫巧,讓「Q寵大樂斗」自動運行,自動打遊戲。



具體步驟



   

第一步:分析鏈接,因為直接使用網頁動畫版(也就是上圖)的網址的話,會有Flash動畫,可能會因為網路的問題,導致延遲,從而影響程序的運行。所以選擇直接關注微信公眾號「Q寵大樂斗」,從開始遊戲的介面進去,這樣就可以進入文字版的遊戲,減少不必要的網速佔用。


第二步:通過審查元素找到相應的元素,使用selenium進行定位控制


第三步:設置定時任務,讓遊戲腳本每天定時運行,遊戲自動化,實現躺贏的最終理想,哈哈 

注意事項


   




  1. 因為等級原因,有一些功能可能對低等級不開放,所以這個遊戲需要「私人訂製」



  2. 有一些獎勵是需要等到了一定的活躍度才可以完領取,所以需要一定的遊戲策略,否則就需要在程序中進行多次判斷


代碼書寫



   


因為這個遊戲的任務有點多,所以分模塊來寫比較好,這樣邏輯不會亂,代碼的可讀性也更強一點


登錄模塊:



通過上圖可以找出登錄的元素位置,直接使用selenium進行登錄操作。


上面代碼中的第14行是設置等待。直白一點就是:如果 WebDriver沒有在 DOM中找到元素,將繼續等待,超出設定時間後則拋出找不到元素的異常


    (自動登錄哦 :-)


其他模塊


之前說過,等級不同,任務也不同。所以我這裡就放上幾個共同的模塊。具體的任務看下圖


每日獎勵模塊:



樂斗好友模塊:



其他的模塊我這裡就不放代碼了,畢竟等級不一樣,代碼可能沒有通用性。而且主要的方法就是定位元素,前篇推文已經詳細介紹了,主要是設置等待時長和注意異常情況的判斷處理就可以了。

計劃任務



   


具體的計劃任務教程,參考:

Python與win的完美結合--計劃任務

。設置好時間,因為這個遊戲的寵物是靠體力來進行的並且每天只能進行一次任務,所以每天定時打一次就可以了。







最後



   


今天這個自動打遊戲的demo,只是單純的練習一下selenium操作;當然也順便回憶一下90後的生活,相信有一部分90後小時候還是會玩過這個遊戲的。


可能有人就覺得這遊戲有點low

(確實有點low)

,那我只能昧著良心回一句:哥玩的不是遊戲,是情懷…… 


代碼:



https://github.com/stormdony/python_demo/tree/master/QQ_Pet_Fight






【關於作者】




stormdony:一個正在發育並且渴望成為一個有技術、有情懷的coder。






【關於投稿】




如果大家有原創好文投稿,請直接給公號發送留言。




① 留言格式:


【投稿】+《 文章標題》+ 文章鏈接

② 示例:


【投稿】

《不要自稱是程序員,我十多年的 IT 職場總結》:http://blog.jobbole.com/94148/



③ 最後請附上您的個人簡介哈~






看完本文有收穫?請轉

發分享給更多人


關注「P

ython開發者」,提升Python技能



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

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


請您繼續閱讀更多來自 Python開發者 的精彩文章:

回歸樹的原理及其 Python 實現
面向對象:希望遇到你,希望時間地點都剛剛好

TAG:Python開發者 |