python 打包 无需安装运行环境_无需Python环境,小白也可以运行的抢票程序
閱讀文本大概需要 5 分鐘。
又到周末了,pk 哥抽空對(duì)搶票程序作了優(yōu)化,并把優(yōu)化后的程序做打包處理,打包后沒(méi)有 Python 環(huán)境的電腦也可以正常運(yùn)行程序了。前兩篇關(guān)于搶票的文章沒(méi)看可點(diǎn)下方鏈接查看。
目錄優(yōu)化瀏覽器驅(qū)動(dòng)路徑
優(yōu)化車站cookie值
優(yōu)化參數(shù)輸入
打包搶票程序
源碼獲取優(yōu)化瀏覽器驅(qū)動(dòng)路徑
之前的代碼中會(huì)讓大家在初始化函數(shù)中輸入自己瀏覽器驅(qū)動(dòng)的本地路徑,很繁瑣,可能有些伙伴忘了輸入或者有轉(zhuǎn)義字符的問(wèn)題。這次 pk 哥直接把 driver 的路徑賦值這一行代碼拿掉了。
注釋掉這行代碼的后果很嚴(yán)重,程序會(huì)找不到驅(qū)動(dòng)去啟動(dòng)瀏覽器,哈哈。怎么辦?很簡(jiǎn)單,我們把下載解壓后的驅(qū)動(dòng) chromedriver 放在 Python 的安裝路徑下即可解決。
優(yōu)化車站cookie值
之前運(yùn)行程序前會(huì)讓大家去瀏覽器中調(diào)試模式中查看對(duì)應(yīng)城市的 cookie 值,把 cookie 填入到出發(fā)地和目的地的參數(shù)里,才能搶你想要的車次的火車票。能不能直接輸入我們熟悉的站名,然后代碼自動(dòng)轉(zhuǎn)化為 cookie 呢?通過(guò)觀察分析,我們發(fā)現(xiàn),這些 cookie 值前部分是中文對(duì)應(yīng)的 Unicode 碼,我們用轉(zhuǎn)碼的方法把中文轉(zhuǎn)換成 Unicode 碼。
后面 %2c 是固定的,最后的大寫的字母是車站的縮寫,這些縮寫哪里獲取呢?12306 提供了一個(gè)接口,鏈接如下。
https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9058
這個(gè)接口我們直接瀏覽器打開(kāi)可以看到所有的車站信息。
接下來(lái),我們需要對(duì)這些信息進(jìn)行處理,這個(gè)思路和方法來(lái)自公眾號(hào)一位讀者,在上一篇文章中,他也給我留言了并告知了優(yōu)化的方法,非常感謝。他把我上一篇的代碼優(yōu)化后放在了 GitHub 上,地址如下。歡迎大家一起優(yōu)化這個(gè)程序。https://github.com/Archiewyq/12306/blob/master/12306.example.py
處理后把 Unicode 碼和車站的簡(jiǎn)寫拼接成完成的車站 cookie 值。
優(yōu)化參數(shù)輸入
這個(gè)優(yōu)化是針對(duì)于下面的打包做準(zhǔn)備的,因?yàn)榇虬笪覀兛床坏皆创a,只能用輸入的形式來(lái)改變這些變量參數(shù),輸入的方法 Python3 中用的是 input()。如果不想每次輸入的話可以把 input 方法替換成之前固定字符串的寫法就行。
打包搶票程序
現(xiàn)在講講本文的另一個(gè)知識(shí)點(diǎn),Python 程序打包。我們知道,Python 腳本如果在沒(méi)有安裝 Python 的機(jī)器上不能運(yùn)行,所以將腳本打包成 exe 文件,降低腳本對(duì)環(huán)境的依賴性,同時(shí)運(yùn)行更加迅速。但這個(gè)搶票程序需要輸入的配置項(xiàng)比較多,其實(shí)不太適合打包,大家可以作為一個(gè)知識(shí)點(diǎn)來(lái)學(xué),對(duì)于那些基本沒(méi)有配置項(xiàng)的程序來(lái)說(shuō)非常合適。
打包的庫(kù)是 pyinstaller,用 pip 命令直接安裝。
pip?install?pyinstaller
安裝成功后,我們就可以用 pyinstaller 庫(kù)對(duì) Python 文檔進(jìn)行打包了,打包 Python 文檔的命令格式如下:pyinstaller?[options]?script?[script?...]?|?specfile
option 參數(shù)有很多,大家有興趣的可參考官方文檔。
https://pyinstaller.readthedocs.io/en/stable/usage.html
今天我只用到一種 option,就是 -f:僅生成一個(gè)可執(zhí)行文件。執(zhí)行命令后需要等待幾分鐘。
顯示 successfully 表示打包成功,exe 包在你的代碼同一目錄下,exe 文件在打包時(shí)自動(dòng)新建的 dist 目錄下。
打開(kāi) dist 目錄下的 exe 文件,在 windows 系統(tǒng)下雙擊文件即可運(yùn)行程序?qū)崿F(xiàn)搶票。顯示的信息頁(yè)面和我們用編輯器看到的是一樣的。
ps:本次程序去掉了發(fā)郵件功能的代碼。
我建了一個(gè)火車票助力群,也是為了讓大家有更多的途徑搶到票,回家過(guò)年,大家可以在群里可以相互點(diǎn)點(diǎn)小程序助力,這樣搶到額概率更大一下。群里也歡迎討論搶票技術(shù),討論 Python,一起成長(zhǎng)。
總結(jié)
以上是生活随笔為你收集整理的python 打包 无需安装运行环境_无需Python环境,小白也可以运行的抢票程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java mysql连接两张表,如何使用
- 下一篇: python多个异常处理_python中