自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

GitHub標(biāo)星超12K,搶票神器大更新,支持候補(bǔ)!

開(kāi)源
掐指一算,距離國(guó)慶黃金周還有半個(gè)月的時(shí)間!你出行的車(chē)票都搶到了嗎?

 掐指一算,距離國(guó)慶黃金周還有半個(gè)月的時(shí)間!你出行的車(chē)票都搶到了嗎?

[[276822]] 

圖片來(lái)自 pexels

根據(jù)國(guó)務(wù)院辦公廳發(fā)布的關(guān)于 2019 年部分節(jié)假日安排的通知,國(guó)慶放假安排是:10 月 1 日至 7 日。

 

想要十一出行的小伙伴們,想必前幾天剛經(jīng)歷了一波搶票大戰(zhàn)。順便把一個(gè) Python 搶票工具,送到了 GitHub 趨勢(shì)榜第一。

 

這個(gè)項(xiàng)目名很干脆,就是“12306”,目前標(biāo)星超過(guò) 12K。項(xiàng)目發(fā)起者是一名叫文賢平的程序員。

[[276823]] 

這很可能是全 GitHub 最德高望重的購(gòu)票小助手了,現(xiàn)在功能一直在更新,且已支持 Python 3.6 以上版本。

一些后起之秀也是在它的基礎(chǔ)上開(kāi)發(fā)出來(lái),然后廣受歡迎:

 

標(biāo)星超 5K 的“py12306”便是其中之一,它支持分布式搶票。十一后面還有春運(yùn),如果需要搶票,可以試一下這些 Python 工具。已經(jīng)有許多人親測(cè)成功搶到票了。

兩個(gè) GitHub 上高星搶票項(xiàng)目

12306 購(gòu)票小助手

文賢平/文先森 (testerSunshine) 的搶票小助手“12306”,雖然誕生在 2018 年初,但最近一次提交代碼,是在今年 9 月 5 日,現(xiàn)在還十分新鮮。

這只得力的小助手,思路清晰又緊湊:

 

從查詢余票開(kāi)始,到付款完成,最后獲取訂單號(hào)。一氣呵成,不怕人類手速太慢。

有了它,文先森去年就絲滑地?fù)尩搅嘶丶业钠?。而后,便努力幫助搶票助手繼續(xù)進(jìn)化。

到目前為止,文先森與一眾貢獻(xiàn)者,已經(jīng)在項(xiàng)目里提交了 361 次代碼,實(shí)現(xiàn)的功能有這些:

 

從更新日志看來(lái),最近加入的重要功能是候補(bǔ)訂單。所謂候補(bǔ),就是在票賣(mài)完的情況下預(yù)先付款,等其他人退票之后自動(dòng)補(bǔ)上,是我國(guó) 2019 年春運(yùn)才出現(xiàn)的新機(jī)制。

但文先森也還不清楚,這項(xiàng)功能在搶票助手里的需求是怎樣的,所以正在密集地嘗試和調(diào)整:

 

在實(shí)現(xiàn)新功能的同時(shí),已有的功能也在不斷優(yōu)化。這個(gè)搶票工具越來(lái)越強(qiáng)大,已具備自動(dòng)打碼、自動(dòng)登陸、準(zhǔn)點(diǎn)預(yù)售和撿漏、智能候補(bǔ)、郵件通知、 pushbear 通知等功能。GitHub 標(biāo)星數(shù)量比起年初的 4K,也已經(jīng)翻了兩番。

隨著項(xiàng)目的成長(zhǎng),文先森在 8 月 31 日宣布了一件重要的事:放棄支持 Python 2.7,只支持 3.6 以上版本。

下面讓我們具體看看這個(gè)項(xiàng)目:

①依賴庫(kù)

驗(yàn)證碼目前可以本地識(shí)別,需要下載模型,放于項(xiàng)目根目錄,全部代碼來(lái)源于此項(xiàng)目(https://github.com/zhaipro/easy12306),表示感謝:

  1. PS:  
  2.   1. 模型下載鏈接:https://pan.baidu.com/s/1rS155VjweWVWIJogakechA  密碼:bmlm 
  3.      群里面也可以下載 
  4.   2. git倉(cāng)庫(kù)下載:https://github.com/testerSunshine/12306model.git 

項(xiàng)目依賴包查看 requirements.txt:

  1. https://github.com/testerSunshine/12306/blob/master/requirements.txt 

安裝方法 x:

  • root 用戶(避免多 Python 環(huán)境產(chǎn)生問(wèn)題):pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
  • 非 root 用戶(避免安裝和運(yùn)行時(shí)使用了不同環(huán)境):pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

②項(xiàng)目使用說(shuō)明

服務(wù)器啟動(dòng):

  • 修改配置文件,可以配置郵箱,配置郵箱的格式在配置里面可以看到 ex,可以配置 Server 醬提醒(推薦)配置教程,配置配置文件的時(shí)候,需注意空格和遵循 Python 語(yǔ)法格式。
  • 運(yùn)行根目錄 sudo python run.py,即可開(kāi)始。

如果你的服務(wù)器安裝了 Docker 與 Docker-Compose, 那么就可以通過(guò) Docker-Compose 進(jìn)行啟動(dòng)。

docker.sh 腳本對(duì)此進(jìn)行了封裝,可以通過(guò)如下命令進(jìn)行啟動(dòng):

  • sudo ./docker.sh run #創(chuàng)建一個(gè)鏡像并啟動(dòng)容器,如果鏡像已經(jīng)創(chuàng)建過(guò)了會(huì)直接啟動(dòng)容器。
  • sudo ./docker.sh restart #修改配置文件后,通過(guò)此名命令可重新加載容器運(yùn)行。
  • sudo ./docker.sh rm #刪除容器。
  • sudo ./docker.sh drun #后臺(tái)運(yùn)行容器。
  • sudo ./docker.sh logs #在后臺(tái)運(yùn)行時(shí),通過(guò)此命令查看運(yùn)行的內(nèi)容。
  • 注:針對(duì)沒(méi)有 Docker 環(huán)境的同學(xué)提供了 Docker 安裝腳本(Centos7)- sudo ./docker_install_centos.sh。

③目錄對(duì)應(yīng)說(shuō)明

目錄對(duì)應(yīng)說(shuō)明如下:

  • agency-cdn 代理
  • config-項(xiàng)目配置
  • verify-自動(dòng)打碼
  • init-項(xiàng)目主運(yùn)行目錄
  • inter-接口
  • myException-異常
  • myUrllib request 網(wǎng)絡(luò)請(qǐng)求庫(kù)

④日志例子

成功 log,如果是購(gòu)票失敗的,請(qǐng)帶上失敗的 log 給我,我盡力幫你調(diào),也可加群一起交流,程序只是加速買(mǎi)票的過(guò)程,并不一定能買(mǎi)到票:

  1. 正在第355次查詢  乘車(chē)日期: 2018-02-12  車(chē)次G4741,G2365,G1371,G1377,G1329 查詢無(wú)票  代理設(shè)置 無(wú)  總耗時(shí)429ms 
  2. 車(chē)次: G4741 始發(fā)車(chē)站: 上海 終點(diǎn)站: 邵陽(yáng) 二等座:有 
  3. 正在嘗試提交訂票... 
  4. 嘗試提交訂單... 
  5. 出票成功 
  6. 排隊(duì)成功, 當(dāng)前余票還剩余: 359 張 
  7. 正在使用自動(dòng)識(shí)別驗(yàn)證碼功能 
  8. 驗(yàn)證碼通過(guò),正在提交訂單 
  9. 提交訂單成功! 
  10. 排隊(duì)等待時(shí)間預(yù)計(jì)還剩 -12 ms 
  11. 排隊(duì)等待時(shí)間預(yù)計(jì)還剩 -6 ms 
  12. 排隊(duì)等待時(shí)間預(yù)計(jì)還剩 -7 ms 
  13. 排隊(duì)等待時(shí)間預(yù)計(jì)還剩 -4 ms 
  14. 排隊(duì)等待時(shí)間預(yù)計(jì)還剩 -4 ms 
  15. 恭喜您訂票成功,訂單號(hào)為:EB52743573, 請(qǐng)立即打開(kāi)瀏覽器登錄12306,訪問(wèn)‘未完成訂單’,在30分鐘內(nèi)完成支付! 

推薦有動(dòng)手能力的朋友使用,搶票事半功倍。所以,多試幾種工具也是好的,尤其是可以同時(shí)進(jìn)行多個(gè)任務(wù)的那種。

py12306 購(gòu)票助手

一位名叫 pjialin 的程序員,借鑒了文先森的部分代碼實(shí)現(xiàn),開(kāi)發(fā)了一個(gè)分布式工具,名叫 py12306 購(gòu)票助手。

就是說(shuō),一臺(tái)機(jī)器搶不到,可以讓許多硬件一起跑。它還支持多任務(wù) (多班列車(chē)) 、多日期、多賬號(hào)一起查。另一個(gè)機(jī)智的功能是,同時(shí)觀察多個(gè)始發(fā)站和到達(dá)站的組合。

比如,北京出發(fā)的票沒(méi)有了,就跑去下一站上車(chē);或者家門(mén)口買(mǎi)不到,就直接買(mǎi)到終點(diǎn):愿意妥協(xié)但限于手速的小伙伴,也能交給工具自動(dòng)查看了。

項(xiàng)目作者說(shuō),試過(guò)文先森的算法和 bypass12306 未果,這才做出了自己的搶票工具。

用上這個(gè)新工具,他一下子搶到了好幾張票:

同樣是支持 Python 3.6 以上版本,這個(gè)項(xiàng)目現(xiàn)在也有 5K 標(biāo)星了。 


下面我們來(lái)看看使用方法:PS:py12306 需要運(yùn)行在 python 3.6 以上版本(其他版本暫未測(cè)試)。

①安裝依賴

  1. git clone https://github.com/pjialin/py12306  
  2. pip install -r requirements.txt 

②配置程序

  1. cp env.py.example env.py 

自動(dòng)打碼:驗(yàn)證碼可以本地識(shí)別,所用的模型和算法均來(lái)自:

  1. https://github.com/zhaipro/easy12306 

語(yǔ)音通知:語(yǔ)音驗(yàn)證碼使用的是阿里云 API 市場(chǎng)上的一個(gè)服務(wù)商,需要購(gòu)買(mǎi)后將 appcode 填寫(xiě)到配置中:

  1. https://market.aliyun.com/products/56928004/cmapi026600.html  

③啟動(dòng)前測(cè)試

目前提供了一些簡(jiǎn)單的測(cè)試,包括用戶賬號(hào)檢測(cè),乘客信息檢測(cè),車(chē)站檢測(cè)等。

開(kāi)始測(cè)試 -t:

  1. python main.py -t 

測(cè)試通知消息 (語(yǔ)音,郵件) -t -n:

  1. # 默認(rèn)不會(huì)進(jìn)行通知測(cè)試,要對(duì)通知進(jìn)行測(cè)試需要加上 -n 參數(shù)  
  2. python main.py -t -n 

④運(yùn)行程序

  1. python main.py 

參數(shù)列表如下:

  • -t:測(cè)試配置信息
  • -t -n:測(cè)試配置信息以及通知消息
  • -c:指定自定義配置文件位置

分布式集群依賴于 Redis,目前支持情況:

  • 單臺(tái)主節(jié)點(diǎn)多個(gè)子節(jié)點(diǎn)同時(shí)運(yùn)行。
  • 主節(jié)點(diǎn)宕機(jī)后自動(dòng)切換提升子節(jié)點(diǎn)為主節(jié)點(diǎn)。
  • 主節(jié)點(diǎn)恢復(fù)后自動(dòng)恢復(fù)為真實(shí)主節(jié)點(diǎn)。
  • 配置通過(guò)主節(jié)點(diǎn)同步到所有子節(jié)點(diǎn)。
  • 主節(jié)點(diǎn)配置修改后無(wú)需重啟子節(jié)點(diǎn),支持自動(dòng)更新。
  • 子節(jié)點(diǎn)消息實(shí)時(shí)同步到主節(jié)點(diǎn)。

使用:將配置文件的中 CLUSTER_ENABLED 打開(kāi)即開(kāi)啟分布式。

目前提供了一個(gè)單獨(dú)的子節(jié)點(diǎn)配置文件 env.slave.py.example 將文件修改為 env.slave.py,通過(guò) python main.py -c env.slave.py 即可快速啟動(dòng)。

Docker 使用

①將配置文件下載到本地

  1. docker run --rm pjialin/py12306 cat /config/env.py > env.py 
  2. # 或 
  3. curl https://raw.githubusercontent.com/pjialin/py12306/master/env.docker.py.example -o env.py 

②修改好配置后運(yùn)行

  1. docker run --rm --name py12306 -p 8008:8008 -d -v $(pwd):/config -v py12306:/data pjialin/py12306 

當(dāng)前目錄會(huì)多一個(gè) 12306.log 的日志文件,tail -f 12306.log。

Docker-Compose 中使用如下:

①?gòu)?fù)制配置文件

  1. cp docker-compose.yml.example docker-compose.yml 

②從 Docker-Compose 運(yùn)行

在 docker-compose.yml 所在的目錄使用命令:

  1. docker-compose up -d 

Web 管理頁(yè)面

目前支持用戶和任務(wù)以及實(shí)時(shí)日志查看,更多功能后續(xù)會(huì)不斷加入。

 

打開(kāi) Web 功能需要將配置中的 WEB_ENABLE 打開(kāi),啟動(dòng)程序后訪問(wèn)當(dāng)前主機(jī)地址 + 端口號(hào) (默認(rèn) 8008) 即可,如 http://127.0.0.1:8008。

 

關(guān)于防封:目前查詢和登錄操作是分開(kāi)的,查詢是不依賴用戶是否登錄,放在 A 云 T 云容易被限制 IP,建議在其他網(wǎng)絡(luò)環(huán)境下運(yùn)行。

[[276825]]

最后,祝小伙伴們十一都能順利回家!

[[276826]] 

12306項(xiàng)目傳送門(mén):

  1. https://github.com/testerSunshine/12306 

py12306 項(xiàng)目傳送門(mén):

  1. https://github.com/pjialin/py12306/ 

 

責(zé)任編輯:武曉燕 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2019-09-08 23:00:19

GitHub代碼開(kāi)發(fā)者

2020-02-20 10:00:04

GitHubPyTorch開(kāi)發(fā)者

2013-01-17 10:49:42

2013-01-22 09:31:33

2019-01-09 09:35:41

搶票Python軟件

2019-12-25 10:29:59

GitHub代碼開(kāi)發(fā)者

2023-11-26 17:03:33

公司AI

2018-01-10 15:23:09

2021-07-26 07:47:37

前端自動(dòng)搶票

2021-10-21 05:57:33

網(wǎng)盤(pán)開(kāi)源云盤(pán)系統(tǒng)

2021-04-09 16:25:00

GitHub代碼開(kāi)發(fā)者

2019-12-27 14:26:33

Github開(kāi)源搶票神器

2019-11-14 09:17:56

GitHub代碼開(kāi)發(fā)者

2020-08-28 15:42:30

GitHub代碼可視化

2021-09-16 15:52:05

GitHub命令URL

2021-09-18 11:28:29

GitHub代碼開(kāi)發(fā)者

2019-01-16 16:00:33

2022-03-25 22:57:37

系統(tǒng)設(shè)計(jì)架構(gòu)

2021-09-10 13:40:10

GitHub命令行Linux

2021-09-04 15:42:17

GitHub面試程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)