<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          搶不到火車(chē)票?不妨試試這兩款開(kāi)源搶票項(xiàng)目

          共 5459字,需瀏覽 11分鐘

           ·

          2021-01-13 01:22


          曉查 郭一璞 發(fā)自 凹非寺
          來(lái)源:AI新媒體量子位( ID: QbitAI)


          留言有禮,每天都會(huì)從留言中選出三位抽取6.6元紅包

          今天,已經(jīng)可以搶過(guò)完年回來(lái)的火車(chē)票了。

          如果你對(duì)自己手速和市面上的各種“加速包”都沒(méi)什么信心的話,不妨試試用程序員的手段搶票?

          況且,12306官方宣布屏蔽了一大批付費(fèi)搶票軟件,這也意味著你即使給這些軟件付了會(huì)員費(fèi),也依舊搶不到票。

          所以只能回到最初的手動(dòng)搶票?No!No!No!

          GitHub上有兩個(gè)“年經(jīng)”項(xiàng)目,每到春運(yùn)前一段時(shí)間,就會(huì)定時(shí)定點(diǎn)的登頂熱榜,助力一代又一代程序員和姿勢(shì)豐富的非程序員們搶票回家。

          那么,這兩個(gè)項(xiàng)目究竟怎么用?好不好用?

          和手動(dòng)搶票、第三方軟件搶票比起來(lái)優(yōu)勢(shì)是否明顯?

          安裝使用過(guò)程中,會(huì)不會(huì)遇到不可名狀的bug?

          今天為大家一一橫評(píng)。

          霸占熱榜的兩個(gè)項(xiàng)目

          排在GitHub熱榜第1的項(xiàng)目名字簡(jiǎn)單粗暴,就直接叫12306,已經(jīng)有21300星,來(lái)自ID為testerSunshine的作者。

          testerSunshine的12306項(xiàng)目可以自動(dòng)登錄用戶賬戶,能卡點(diǎn)搶票,也能撿漏候補(bǔ),搶到票后會(huì)通過(guò)郵件進(jìn)行通知。

          排在熱榜第2位的,叫做py12306,目前已有8300星,今年初就已經(jīng)非?;鹆恕?/p>

          我該選哪個(gè)搶票軟件

          那么整體來(lái)看,這兩款開(kāi)源軟件,哪個(gè)更好用呢?

          py12306從去年開(kāi)始就已經(jīng)被大家廣泛使用,其優(yōu)點(diǎn)是設(shè)置比較簡(jiǎn)潔,甚至還有圖形界面。但是它在驗(yàn)證碼登錄過(guò)程中容易出現(xiàn)下載失敗的情況,如果把打碼接口從free換成“若快”平臺(tái),還需要充值。

          如果你對(duì)運(yùn)行代碼一無(wú)所知,建議使用py12306.

          testerSunshine的12306插件設(shè)置比較復(fù)雜,自動(dòng)獲取cookie經(jīng)常失敗,因此需要手動(dòng)填寫(xiě),這一點(diǎn)比不上py12306;但是它自帶了開(kāi)發(fā)者的12306圖片識(shí)別模型,我們可以在本地完成圖片識(shí)別碼的登錄過(guò)程。

          從實(shí)際使用效果來(lái)看,我們更推薦testerSunshine的12306,目前它在GitHub上的高人氣,也反映的用戶們的選擇。

          測(cè)評(píng)細(xì)節(jié)&使用教程

          兩個(gè)搶票插件的關(guān)鍵都在配置文件的修改:testerSunshine/12306的關(guān)鍵在于TickerConfig.py,
          而py12306的關(guān)鍵在于env.py。

          熱榜第一:12306

          我們先開(kāi)始測(cè)試現(xiàn)在趨勢(shì)榜第一的12306,先將項(xiàng)目復(fù)制到本地:

          git?clone?https://github.com/testerSunshine/12306
          cd?12306

          再安裝依賴項(xiàng),為了避免多python環(huán)境產(chǎn)生問(wèn)題,建議以root用戶方式安裝:

          pip3?install?-i?https://pypi.tuna.tsinghua.edu.cn/simple?-r?requirements.txt

          下面到了整個(gè)過(guò)程最關(guān)鍵的環(huán)節(jié),配置TickerConfig.py文件,這一步將決定你的成?。》浅V匾?!

          看到配置文件里一長(zhǎng)串字符,你是不是覺(jué)得很頭疼呢?我們經(jīng)過(guò)測(cè)試,找到了其中的幾個(gè)關(guān)鍵點(diǎn):

          1、如果你沒(méi)有搶到票,寄希望于其他人退票后撿漏,令TICKET_TYPE = 2,否則設(shè)置為1;

          #?刷票模式:1=刷票 2=候補(bǔ)+刷票
          TICKET_TYPE?=?1


          2、STATION_TRAINS可以填入一串你想要搶的車(chē)次,比如北京到合肥方向,你想購(gòu)買(mǎi)G267、G29次列車(chē),就設(shè)置為STATION_TRAINS = [“G267”, “G29”],中間用逗號(hào)隔開(kāi),不填寫(xiě)等于搶當(dāng)日全部車(chē)次;

          #?出發(fā)日期(list)?"2018-01-06",?"2018-01-07"
          STATION_DATES?=?[
          ????"2020-01-30"
          ]

          #?填入需要購(gòu)買(mǎi)的車(chē)次(list),"G1353"
          #?修改車(chē)次填入規(guī)則,注:(以前設(shè)置的車(chē)次邏輯不變),如果車(chē)次填入為空,那么就是當(dāng)日乘車(chē)所有車(chē)次都納入篩選返回
          #?不填車(chē)次是整個(gè)list為空才算,如果不是為空,依然會(huì)判斷車(chē)次的,這種是錯(cuò)誤的寫(xiě)法?[""],?正確的寫(xiě)法?[]
          STATION_TRAINS?=?["G267","G29"]

          3、STATION_DATES填入你出發(fā)的日期,這一步不難;

          4、出發(fā)站FROM_STATION和到達(dá)站TO_STATION不必精確到具體的站,只需填入城市,除非你想從特定站點(diǎn)出發(fā);

          #?出發(fā)城市,比如深圳北,就填深圳就搜得到
          FROM_STATION?=?"北京"

          #?到達(dá)城市?比如深圳北,就填深圳就搜得到
          TO_STATION?=?"合肥"

          5、乘車(chē)人填入你12306賬號(hào)中常用聯(lián)系人的姓名,比如TICKET_PEOPLES = [“張三”],如果沒(méi)有,需要登錄12306手動(dòng)添加;

          #?乘車(chē)人(list)?多個(gè)乘車(chē)人ex:
          #?"張三",
          #?"李四"
          TICKET_PEOPLES?=?["李雷","韓梅梅"]

          6、填入你的12306賬戶名和密碼;

          #?12306登錄賬號(hào)
          USER?=?"Lilei"
          PWD?=?"123456"

          7、如果不需要郵箱和Server醬提醒,請(qǐng)把EMAIL_CONF和SERVER_CHAN_CONF的第一項(xiàng)都設(shè)置為False;

          8、開(kāi)放搶票時(shí)間根據(jù)自己車(chē)次填入,可以提前幾秒,比如下午一點(diǎn)開(kāi)發(fā)搶票,則填入OPEN_TIME = “12:29:57” ;

          #?預(yù)售放票時(shí)間,?如果是撿漏模式,可以忽略此操作
          OPEN_TIME?=?"12:29:57"

          9、cookie設(shè)置這一步尤為關(guān)鍵,經(jīng)過(guò)我們實(shí)測(cè),COOKIE_TYPE設(shè)置為1或2都有些問(wèn)題,建議設(shè)置為3;

          #?1=使用selenium獲取devicesID
          #?2=使用網(wǎng)頁(yè)端/otn/HttpZF/logdevice獲取devicesId,這個(gè)接口的算法目前可能有點(diǎn)問(wèn)題,如果登錄一直302的請(qǐng)改為配置1
          #?3=自己打開(kāi)瀏覽器在headers-Cookies中抓取RAIL_DEVICEID和RAIL_EXPIRATION,這個(gè)就不用配置selenium
          COOKIE_TYPE?=?3

          10、上一步設(shè)置為3以后,還需要手動(dòng)設(shè)置后面的兩個(gè)參數(shù)RAIL_EXPIRATIONRAIL_DEVICEID。

          #?如果COOKIE_TYPE=3,?則需配置RAIL_EXPIRATION、RAIL_DEVICEID的值
          RAIL_EXPIRATION?=?"1577327361278"
          RAIL_DEVICEID?=?"jFAKbAeAInPnm0pAdqdCNG0ID_dU6SW6L8gaX7zDEewcWVJC5w7nTSw63oMK9sd9c6FcdhyDMsuVUV4aknfXwzHhO8c_Z-nLU4W8F4_gj_HlrOrsrR29U82HR4pnMRqoRFBKuCZ3tKAgQrhuYnR5RWsBCe5g7goV"
          #?RAIL_EXPIRATION?=?"1577034103293"
          #?RAIL_DEVICEID?=?"CDno29Erc_Pf3FSXb4dzq-Op64EhWrsi5yUZKVIKR1MAfYo2qFlCeXD8VkexY7_1qg-ClV-fE8j9jgVlPZxRh3wVc2iqLe_5A8sdr62qZx4B22JPF8lFCjpgTKZ5ODW90HJd5tiQsJ1KR9nOqHRxHj1FT5LEIwfw"

          如何找到這兩個(gè)參數(shù)?先用Chrome瀏覽器打開(kāi)12306.cn,點(diǎn)擊網(wǎng)站地址左邊的“鎖形”圖標(biāo):再點(diǎn)擊下發(fā)的Cookie

          接著會(huì)出現(xiàn)一組Cookie,選擇來(lái)自12306.cn的Cookie:

          看到RAIL_EXPIRATIONRAIL_DEVICEID兩個(gè)參數(shù),點(diǎn)擊它,將內(nèi)容里的一串字符復(fù)制到配置文件中。

          需要注意的是RAIL_DEVICEID參數(shù)很長(zhǎng),可能顯示不全,請(qǐng)完整復(fù)制。

          至此,準(zhǔn)備工作已全部完成,啟動(dòng)前請(qǐng)先篩選cdn,這點(diǎn)很重要!

          python3?run.py?c

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

          python3?run.py?r

          接著它會(huì)提出登錄成功,并列出當(dāng)日所有相關(guān)車(chē)次信息,然后開(kāi)始搶票:

          搶票成功后,這個(gè)軟件不能幫你完成支付,你還需要在手機(jī)或者電腦上登錄12306網(wǎng)站,在30分鐘內(nèi)完成支付動(dòng)作,否則你辛辛苦苦搶的票就沒(méi)了。


          熱榜第二:py12306

          py12306的安裝方式與前者類似:

          git?clone?https://github.com/pjialin/py12306
          cd?py12306
          pip3?install?-r?requirements.txt

          然后修改配置文件,現(xiàn)更改后綴名

          cp?env.py.example?env.py

          默認(rèn)配置文件中需要修改的選項(xiàng)有:

          1、你的12306賬戶和密碼;

          #?12306?賬號(hào)
          USER_ACCOUNTS?=?[
          ????#?目前已支持僅查詢,不下單,屏蔽掉下面的賬號(hào)即可
          ????{
          ????????'key':?'lilei',??#?如使用多個(gè)賬號(hào)?key?不能重復(fù)
          ????????'user_name':?'Lilei',
          ????????'password':?'123456'
          ????},

          2、查詢?nèi)蝿?wù)QUERY_JOBS中的各項(xiàng)參數(shù),包括出發(fā)日期left_dates、出發(fā)站left和到達(dá)站arrive、乘客姓名members、坐席seats、車(chē)次train_numbers;

          #?查詢?nèi)蝿?wù)
          QUERY_JOBS?=?[
          ????{
          ????????#?'job_name':??'bj?->?yl',??#?任務(wù)名稱,不填默認(rèn)會(huì)以車(chē)站名命名,不可重復(fù)
          ????????'account_key':?0,??#?將會(huì)使用指定賬號(hào)下單
          ????????'left_dates':?[??#?出發(fā)日期?:Array
          ????????????"2020-01-22",
          ????????],
          ????????'stations':?{??#?車(chē)站?支持多個(gè)車(chē)站同時(shí)查詢??:Dict?or?:List
          ????????????'left':?'北京',
          ????????????'arrive':?'合肥',
          ????????},
          ????????'members':?[??#?乘客姓名,會(huì)根據(jù)當(dāng)前賬號(hào)自動(dòng)識(shí)別乘客類型?購(gòu)買(mǎi)兒童票?設(shè)置兩個(gè)相同的姓名即可,程序會(huì)自動(dòng)識(shí)別?如??['張三',?'張三']
          ????????????"李雷",
          ????????????"韓梅梅"#在姓名前加*表示學(xué)生購(gòu)買(mǎi)成人票
          ????????????#?7,??#?支持通過(guò)序號(hào)確定唯一乘客,序號(hào)查看可通過(guò)??python?main.py?-t?登錄成功之后在?runtime/user/?下找到對(duì)應(yīng)的?用戶名_passengers.json?文件,找到對(duì)應(yīng)的?code?填入
          ????????],
          ????????'allow_less_member':?0,??#?是否允許余票不足時(shí)提交部分乘客
          ????????'seats':?[??#?篩選座位??有先后順序?:Array
          ????????????#?可用值:?特等座, 商務(wù)座, 一等座, 二等座, 軟臥, 硬臥, 動(dòng)臥, 軟座, 硬座, 無(wú)座
          ????????????'二等座'
          ????????],
          ????????'train_numbers':?[??#?篩選車(chē)次?可以為空,為空則所有車(chē)次都可以提交?如?[]?注意大小寫(xiě)需要保持一致
          ????????????"G267",???
          ????????],
          ????????'except_train_numbers':?[??#?篩選車(chē)次,排除車(chē)次??train_numbers?和?except_train_numbers?不可同時(shí)存在
          ????????],
          ????????'period':?{??#?篩選時(shí)間
          ????????????'from':?'00:00',
          ????????????'to':?'24:00'
          ????????}

          ????},

          接著運(yùn)行程序:

          python3?main.py

          如果你不善于使用命令行模式,還可以使用圖形界面觀察搶票任務(wù)。

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

          現(xiàn)在,就可以讓程序幫你搶票啦。

          不過(guò),搶票軟件并非萬(wàn)能,巧coder難為無(wú)票之炊,除了技術(shù),你可能還需要一點(diǎn)點(diǎn)運(yùn)氣。

          無(wú)論采取哪種交通方式,祝大家都能開(kāi)開(kāi)心心過(guò)年回家,平平安安回來(lái)搬磚~

          2020已經(jīng)開(kāi)始,量子位也祝大家新年快樂(lè)^_^

          傳送門(mén)

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

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


          昨日留言中獎(jiǎng)名單

          以上三位小伙伴,加小編微信:yumeko370?領(lǐng)取小小紅包一份哦!


          1、私藏很久的程序員小眾寶藏網(wǎng)站,吐血推薦(文末送書(shū))

          2、賺瘋了!轉(zhuǎn)手立賺800+?了解一下大佬的「搶茅臺(tái)腳本」

          3、五分鐘學(xué)會(huì)怎么用Pygame做一個(gè)簡(jiǎn)單的貪吃蛇


          轉(zhuǎn)發(fā),點(diǎn)贊,在看,安排一下?
          瀏覽 47
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  观看一级黄片 | 欧美aaa日韩aaa国产 | re在线精品视频 | 国产精品久久久久久久免费 | 日韩精品在线观看高清 |