10行Python程式碼實現抽獎助手自動參與抽獎
不知道大家用過抽獎助手小程式沒?(免費給抽獎助手做個小廣告),我在公眾號多次用它來發過很多獎品,同時,我每天也會去參與一些抽獎,目前的中獎記錄為0(尷尬臉)
很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教程,電子書籍,以及課程的原始碼!??¤
QQ群:623406465
在助手中參與抽獎你不需要支付一分錢,但是需要花時間,想抽獎就不得不每天開啟小程式逐個點選參與才能參與,每天重複的操作覺得好繁瑣,於是我萌生出一個想法,用程式去自動參與抽獎。
說幹就幹,熟悉爬蟲基本原理的大概能猜出來怎麼做。我們之前寫過基於Python爬微信公眾號爬蟲的系列教程,現在假設你已經會用 Fiddler 去代理 HTTP 請求。怎麼安裝 Fiddler 和配置手機端這裡不再介紹,自行百度。
配置好 Fiddler 之後,手機開啟小程式 “抽獎助手” 之後,有個公共抽獎列表
通過Fiddler 抓包,我們看到抽獎列表的請求地址是:/public_lottery?page=1&size=5, 請求方法是 GET,還有一個 Header 欄位 Authorization,返回的資料結構可以清晰看到總共返回了5條資料,代表5個獎品,每個欄位基本能猜出來什麼意思。
我們再來手動選擇一個活動點選參與抽獎,看背後它是怎麼向伺服器傳送請求的,弄清楚了原理之後就可以用程式來自動模擬請求。
參與抽獎的請求有幾個注意的地方,請求使用的是 POST 方法,URL地址是:/lottery/67c3a5afe794dc7bdbed85a38a18bb44/join,和抽獎列表一樣,還有一個請求 Header 是 Authorization,它的值就是後面一串很長的 Bearer 開頭的字串… 。
現在我們就可以用 Python 來構建一個自動參與抽獎的指令碼,每隔一段時間就去自動刷,發現有新的獎品,就自動參與抽獎。
原始碼
# coding=utf-8 import requests def main(): url = "https://lucky.nocode.com/public_lottery?page=1&size=5" # 替換成你自己的Authorization headers = { "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV...."} res = requests.get(url, headers=headers) lotteries = res.json().get("data") join_url = "https://lucky.nocode.com/lottery/{id}/join" for lottery in lotteries: res = requests.post(join_url.format(id=lottery.get("id")), headers=headers) data = res.json() if res.status_code == 200 and 'errors' not in data: print("成功參與抽獎:《%s》" % lottery.get("prizes").get("data")[0].get("name")) if __name__ == '__main__': main()
執行
成功參與抽獎:《阿瑪尼紅管脣釉》 成功參與抽獎:《Havaianas 人字拖》 成功參與抽獎:《《不要成為無聊的大人》》 成功參與抽獎:《Satan 鑰匙扣》 成功參與抽獎:《桌面理線器》
現在所有獎品都變成已參與狀態,坐等中獎吧。你還可以對程式碼進行改進。
有人可能會問,這算不算作弊呢?我覺得這就是程式設計師的優勢,我們只是用了不一樣的工具來完成相同的事情,以後程式設計還真的是每個人都應該掌握的一項基本技能,沒事寫個程式碼解決繁瑣的、重複的工作。懶惰是推動社會文明進步的原動力。