py12306搶票環境搭建

2021-10-01 18:06:44 字數 1179 閱讀 8961

git上star9.4k的py12306,慕名而來,在本地搭建購票環境。

尊重作者成果,先貼別人鏈結,py12306的git位址是:

先說我搭建環境的結果:剛開始登陸期間長時間打碼失敗,嘗試了幾分鐘之後才登陸成功。

打碼失敗: 錯誤原因 從免費打碼獲取結果失敗

在登陸成功之後設定買硬座與無座票,由於沒有硬座,log資訊為:

檢查完成 開始提交訂單 提交訂單失敗,錯誤原因 網路錯誤

不知道是不是bug。買不到無座票。

按照py12306的readme,安裝依賴,pip install -r requirements.txt,結果發現lxml沒有安裝成功。於是我不管了,直接不指定版本,直接install lxml,看到lxml版本是4.4.2。我本地使用的是python3.8。requirements.txt裡面設定的是lxml==4.3.0,於是我把這個檔案裡面的lxml設定為4.4.2。所有的依賴全部安裝成功。

cp env.py.example env.py,其實也就是copy前者為後者,直接複製貼上改名為env.py。

啟動前測試,python main.py -t發現報錯。typeerror: required field 「type_ignores」 missing from module,網上查了下,原來是python3.8的版本與werkzeug包的衝突, werkzeug的routing.py報錯。

module = ast.fix_missing_locations(ast.module([func_ast], ))

python3.8要求ast.module()方法裡面必須帶第二個引數,這裡什麼都沒有,就傳個空列表。第二個引數加了「」。

解決這個問題的參考鏈結是:

到這裡在執行python main.py,沒什麼問題了。

然後需要在env.py檔案裡面修改自己的賬號密碼,車次等等資訊。開啟log等。

執行成功之後的截圖如下:

謝謝!

12306搶票軟體

import json,time 讀寫資料庫中的票數 defwr info sign,dic none if sign r with open ticket mode r encoding utf 8 as fp dic json.load fp return dic elif sign w wit...

12306搶票一(登入)

找到登入的頁面,由於賬號密碼登入比較麻煩就直接掃碼登入所以要先找到登入頁面的url,利用selenium進行登入。在實戰中一般要先把框架給搭好,好後面新增 為了 得簡潔,可讀性較高,所以整個過程在乙個類中實現,類中又定義了不同的函式來實現不同的功能 搭框架 有乙個執行的入口,有乙個主函式可以呼叫定義...

Centos 搶票軟體環境搭建

開源搶票軟體github位址 採用docker的環境 首先安裝docker 然後安裝docker compose pip install docker compose 1.23.2 啟動docker systemctl start docker 守護程序重啟 sudo systemctl daemo...