搶票軟體開發 二 模擬登入

2021-09-24 13:01:46 字數 1965 閱讀 1688

本搶票軟體功能設計分為4個部分:

1.模擬登入

2.自主選座

3.新增郵寄位址和購票人資訊

4.軟體封裝

這裡以大麥網的搶票軟體為例,**登入提供三種方法(暫時不考慮通過第三方進行登入),簡訊登入由於涉及和手機端或者模擬手機端進行通訊,不考慮,僅剩下密碼登入和掃碼登入兩種方式,故初步思考實現模擬登入有三種方法。

1.每次登入時手動輸入賬號密碼進行登入

2.軟體自動輸入賬號密碼,繞過進度條驗證過程

3.軟體自動通過儲存cookie進行掃碼登入

方案一:

在程式實現過程中,發現大麥網有防止刷票的機制,在刷票時如果多次進行重新整理,就會讓使用者重新登入,這種情況是在刷票的同時不允許出現的,故方案一被拋棄。

方案二:

由於不清楚大麥網內部關於爬蟲登入的進度條機制,且經過測試發現在selenium下進度條的篩選極為嚴格,甚至有時候人來拖動都沒辦法通過,考慮程式演算法實現的較難驗證的特性,拋棄。

方案三:

掃碼登入是一種比較特殊的登入方式,不需要經過進度條驗證,這樣可以通過儲存人的一次登入過程產生的cookie進行重複登入,是一種很好的方法。

原始碼如下:

def set_cookie(self):

self.driver.get(damai_url)

print("###登入###")

while self.driver.title.find('大麥網-全球演出賽事官方購票平台') != -1:

sleep(1)

print("###請掃碼登入###")

while self.driver.title == '大麥登入':

sleep(1)

print("###掃碼成功###")

pickle.dump(self.driver.get_cookies(), open("cookies.pkl", "wb"))

print("###cookie儲存成功###")

self.driver.get(target_url)

def get_cookie(self):

try:

cookies = pickle.load(open("cookies.pkl", "rb"))

for cookie in cookies:

cookie_dict =

self.driver.add_cookie(cookie_dict)

print('###載入cookie###')

except exception as e:

print(e)

def login(self):

if self.login_method == 0:

self.driver.get(login_url)

print('###開始登入###')

elif self.login_method == 1:

if not os.path.exists('cookies.pkl'):

self.set_cookie()

else:

self.driver.get(target_url)

self.get_cookie()

def enter_concert(self):

print('###開啟瀏覽器,進入大麥網###')

self.driver = webdriver.chrome()

self.login()

self.driver.refresh()

self.status = 2

print("###登入成功###")

需要注意的是,在追蹤**前端的標籤時,其名稱,標籤名時經常更新的,可以通過f12在瀏覽器中檢視對應的標籤號進行程式邏輯的修改。

github工程:

搶票軟體開發 四 軟體封裝

封裝軟體是採用的是config.ini配置檔案與pyinstaller進行結合的方式,1.config檔案中主要配置的是 鏈結等資訊,供使用者根據需要進行調整 2.pyinstaller是將軟體封裝成exe檔案,目的是在其他電腦上也可以執行 其中需要提及的是 1.ini檔案的操作由於其中涉及通過co...

軟體開發實操彙總(二)軟體開發基礎

有了上述經營戰略 內部資源配置及專案自身情況等內容的彙總及分析,針對不同情況,在開發前,應具體深入的進行專案的前期調研,梳理出專案的具體需求及各種問題,將需求和問題一一落實到文件編制。此過程是專案是否能夠順利實施並取得預期效果的關鍵,大體分為以下幾個步驟 1 需求和問題的歸納 2 編制需求文件 問題...

軟體開發不可與建築模擬

多年以來,軟體行業一直在使用一種模擬,即以建築來做參考和比喻。這種比較在軟體語言裡隨處可見,比如架構 architecture 地基 foundation 建造者 constructor 專案 project 施工規範 building code 等。這些說法是如此之流行,以至於影響到了我們對軟體開...