歸程將至,不少朋友可能還未買到火車票。這里根據我自己這幾天的購票經歷分享下如何使用工具 py12306 購票。
這里我們使用 Linux 系統(tǒng)。
安裝 Python 環(huán)境
首先需要 Python 環(huán)境,下面安裝了一個 Miniconda,它會帶 Python,如果已經有的話可以跳過。
# 安裝 Python >= 3.6
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 按照指示一路向下
# 重啟終端
安裝 py12306
git clone https://github.com/pjialin/py12306
cd py12306 && pip install -r requirements.txt
cp env.py.example env.py
修改配置
上面得到的 env.py 包含了程序所有的配置,有非常好的注釋,跟著修改即可。
主要是修改賬號、密碼、購票人和乘車區(qū)間、日期等。
另外需要設置下微信推送,使用 Server 醬即可:
# ServerChan 和 PushBear 微信消息推送
# 使用說明,點擊下面的鏈接查看
# ServerChan http://sc.ftqq.com
# PushBear http://pushbear.ftqq.com
SERVERCHAN_ENABLED = 1
SERVERCHAN_KEY = 'xxx'
設置完后測試下(免得買到票沒收到通知??)
運行購票程序
python main.py
可以使用 nohup 掛在后臺:
nohup python main.py &
瀏覽器通過 127.0.0.1:8008可以訪問 Web 端。
如果運行時出現網絡錯誤的提示
修改下面的配置:
# 網絡錯誤問題臨時解決方案
# 以IE為例,網頁登陸12306 網站: https://kyfw.12306.cn/otn/resources/login.html
# 按F12 調出瀏覽器調試頁面定位到網絡選項:
# 在頭部Cookie里面查找,RAIL_EXPIRATION 和RAIL_DEVICEID的值 。
# 打開 env.py,查找這兩個參數,把值替換成第二步里的RAIL_EXPIRATION 和RAIL_DEVICEID的值,重啟刷票腳本即可 愉快的登錄刷票了。
CACHE_RAIL_ID_ENABLED = 1
RAIL_EXPIRATION = 'xxx' #瀏覽12306 網站中的Cache的RAIL_EXPIRATION 值
RAIL_DEVICEID = 'xxx' #瀏覽12306 網站中的Cache的RAIL_DEVICEID 值
最后,如果有其他問題和需求請查看項目主頁:https://github.com/pjialin/py12306