py12306搶票環境搭建

前言

Git上Star9.4K的py12306,慕名而來,在本地搭建購票環境。

尊重作者成果,先貼別人鏈接,py12306的Git地址是:https://github.com/pjialin/py12306

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

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

在登陸成功之後設置買硬座與無座票,由於沒有硬座,log信息爲:

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

不知道是不是bug。買不到無座票。
在這裏插入圖片描述

開始

  1. 按照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。所有的依賴全部安裝成功。

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

  3. 啓動前測試,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()方法裏面必須帶第二個參數,這裏什麼都沒有,就傳個空列表。第二個參數加了“[]”。

    解決這個問題的參考鏈接是:https://www.jianshu.com/p/95588bf4e63d

  4. 到這裏在運行python main.py,沒什麼問題了。

  5. 然後需要在env.py文件裏面修改自己的賬號密碼,車次等等信息。開啓log等。

最後

在log裏面發現下載驗證碼經常失敗,非常不穩定。

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

在這裏插入圖片描述
謝謝!

發佈了19 篇原創文章 · 獲贊 12 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章