12306自動(dòng)刷票下單-下單

下單

進(jìn)入下單界面了
https://kyfw.12306.cn/otn/confirmPassenger/initDc


還有一個(gè)請(qǐng)求https://kyfw.12306.cn/otn/confirmPassenger/getPassengerDTOs

仔細(xì)看一下返回值,是我們常用聯(lián)系人的信息,要下單肯定得選乘客信息嘛慢洋。這也是一個(gè)post請(qǐng)求抵蚊,這個(gè)REPEAT_SUBMIT_TOKEN=8273d204078ad491f0face93d5c878b9很奇怪张足,記住愿险,肯定是在它之上的請(qǐng)求中獲取的旺拉,
嫉鲸,很幸運(yùn)我們看它上面的那個(gè)請(qǐng)求initDc中就出現(xiàn)了撑蒜,沒錯(cuò)值是一樣的,又搞定一個(gè)

選乘客票種提交

https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo

看看參數(shù)充坑,頭暈嗎减江?抹掉的是姓名身份證電話信息,除了REPEAT_SUBMIT_TOKEN和空參數(shù)捻爷,其他的一頭霧水辈灼,你發(fā)現(xiàn)REPEAT_SUBMIT_TOKEN和上面的不一樣了是吧,其實(shí)是一樣的也榄,因?yàn)槲沂菍懲暌徊糠植胚M(jìn)行下面的操作巡莹,時(shí)間長導(dǎo)致登錄失效,所以提交的時(shí)候要求重新登錄甜紫,這個(gè)REPEAT_SUBMIT_TOKEN參數(shù)就不一樣了降宅,也說明這個(gè)參數(shù)是每次都變化的。
請(qǐng)求有發(fā)送的地方囚霸,這些參數(shù)也必然有填充的地方腰根,向上找,不要放過任何一個(gè)請(qǐng)求拓型,css和img請(qǐng)求就算了额嘿,然后我們找到了https://kyfw.12306.cn/otn/resources/merged/passengerInfo_js.js?scriptVersion=1.9053
格式化一下,最好是找在線格式化JavaScript代碼的劣挫,效果更好


前兩個(gè)參數(shù)搞定了册养,然后再看一下getpassengerTickets和getOldPassengers函數(shù)

passengerTicketStr:O,0,1,xxx,1,xxxxx,xxxxx,N
座位類型,0,票類型(成人/兒童),name,身份類型(身份證/軍官證....),身份證,電話號(hào)碼,保存狀態(tài)
跟上面這些一一對(duì)應(yīng)一下,還有一個(gè)下劃線压固,等你選擇兩個(gè)乘客的時(shí)候你就知道了
oldPassengerStr自己分析一下吧

再看下面的請(qǐng)求https://kyfw.12306.cn/otn/confirmPassenger/getQueueCount


train_date時(shí)間不用解釋了球拦,train_no好像跟車次有關(guān)哦,對(duì)于未知的參數(shù),我們一般先看前面請(qǐng)求的返回值坎炼,然后才是document和js請(qǐng)求愧膀,從查票請(qǐng)求的拆分結(jié)果來看2對(duì)應(yīng)的就是這個(gè),那么下面的車次信息也有了点弯,seatType座位類型

起始站編號(hào)和目的地編號(hào)我們也知道扇调,train_location可以在查票信息中找到第15個(gè),這里主要看一下leftTicket參數(shù)抢肛,同樣的道理狼钮,在之前的請(qǐng)求中查找,我們發(fā)現(xiàn)initDc這個(gè)請(qǐng)求中搜到了這個(gè)值捡絮,key_check_isChange在下面用到(主要是看value值熬芜,這里為了截圖重新截的圖,所以value值不一樣福稳,正常的情況是一樣的涎拉,不用擔(dān)心)


https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue


看一下請(qǐng)求參數(shù),所有參數(shù)在之前都找到了的圆,包括key_check_isChange

下一個(gè)請(qǐng)求
https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?random=1512295210042&tourFlag=dc&_json_att=&REPEAT_SUBMIT_TOKEN=56d3de8fe05b24a2daa92c0351df6cd2


請(qǐng)求參數(shù)非常明顯鼓拧,random是隨機(jī)參數(shù),其他的不用再說了
下一個(gè)請(qǐng)求
https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?random=1512295213365&tourFlag=dc&_json_att=&REPEAT_SUBMIT_TOKEN=56d3de8fe05b24a2daa92c0351df6cd2

EXM越妈?跟上面的是同一個(gè)請(qǐng)求季俩?請(qǐng)求確實(shí)一樣,但是返回值不一樣梅掠,看到了嗎酌住?orderId有值了,在下一個(gè)請(qǐng)求中用到了

https://kyfw.12306.cn/otn/confirmPassenger/resultOrderForDcQueue

好了請(qǐng)求發(fā)完了阎抒,打開瀏覽器看一下訂單吧酪我,如果出現(xiàn)未支付訂單,恭喜你搞定了




補(bǔ)充一下我的執(zhí)行結(jié)果且叁,昨天訂票次數(shù)用完了都哭,最終執(zhí)行結(jié)果忘了截圖,截圖重新運(yùn)行一下逞带,貼一下結(jié)果

番外:

  1. 有一些參數(shù)我在做的時(shí)候并沒有詳細(xì)去追根究底质涛,如果你有興趣可以看一看
    https://kyfw.12306.cn/otn/resources/merged/queryLeftTicket_js.js?scriptVersion=1.9053

    寫博客的時(shí)候翻到了這個(gè)js,又在里面找到了一些參數(shù)的根源
  2. 我在寫的時(shí)候碰到一個(gè)特別神奇的問題掰担,給我搞蒙了參數(shù)問題可以看一看,千萬不要犯我的這個(gè)錯(cuò)誤
  3. 我在文章中提到的幾個(gè)js請(qǐng)求怒炸,后面跟了scriptVersion參數(shù)带饱,我發(fā)現(xiàn)這個(gè)更新等倒是挺頻繁的,所以每次還是關(guān)注一下
  4. 我這個(gè)并沒有做的特別詳細(xì),代碼沒有整理勺疼,沒有異常處理教寂,還有一個(gè)需求沒有寫就是判斷哪一趟車的哪種票是不是有,能不能預(yù)訂执庐,畢竟我并不是要寫一個(gè)非常健壯的搶票軟件酪耕,就是練一練手,做做積累
  5. 高鐵票是需要選座的轨淌,我只是訂了普通的票迂烁。等以后再看吧,有需求再補(bǔ)上

總結(jié)

通過整篇文章想給大家提供一個(gè)思路递鹉,主要是對(duì)于請(qǐng)求的參數(shù)而言:

  • 首先你應(yīng)該知道這個(gè)參數(shù)肯定是在當(dāng)前請(qǐng)求之前出現(xiàn)的盟步,至于是在哪個(gè)請(qǐng)求之后出現(xiàn)的這個(gè)就看情況了
  • 我們的參數(shù)無外乎就兩種情況,一種是服務(wù)器發(fā)個(gè)客戶端的躏结,一種是客戶端動(dòng)態(tài)生成的却盘。
  • 當(dāng)我們?cè)谇懊娴恼?qǐng)求中去查找參數(shù)的時(shí)候,我的查找順序一般是先看xhr請(qǐng)求的返回值媳拴,因?yàn)檫@個(gè)數(shù)據(jù)是最純凈的黄橘,幾乎沒有垃圾數(shù)據(jù)。然后再從document請(qǐng)求中查找屈溉,這個(gè)里面一般是內(nèi)嵌js數(shù)據(jù)塞关,或者h(yuǎn)tml數(shù)據(jù),最后才從js請(qǐng)求中去分析數(shù)據(jù)语婴,這是最麻煩的描孟,也是現(xiàn)在很多反爬都鐘情的一種方式。

我在文中很多地方都提到了這個(gè)過程砰左,簡單一筆帶過匿醒,最后整體的把思路說一下,大家反過來再看一下文章缠导,就會(huì)意會(huì)很多O(∩_∩)O~


已經(jīng)轉(zhuǎn)戰(zhàn)頭條了廉羔,不在這個(gè)平臺(tái)寫了,TT號(hào):Python集結(jié)號(hào)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末僻造,一起剝皮案震驚了整個(gè)濱河市憋他,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌髓削,老刑警劉巖竹挡,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異立膛,居然都是意外死亡揪罕,警方通過查閱死者的電腦和手機(jī)梯码,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來好啰,“玉大人轩娶,你說我怎么就攤上這事】蛲” “怎么了鳄抒?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長椰弊。 經(jīng)常有香客問我许溅,道長,這世上最難降的妖魔是什么男应? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任闹司,我火速辦了婚禮,結(jié)果婚禮上沐飘,老公的妹妹穿的比我還像新娘游桩。我一直安慰自己,他們只是感情好耐朴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布借卧。 她就那樣靜靜地躺著,像睡著了一般筛峭。 火紅的嫁衣襯著肌膚如雪铐刘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天影晓,我揣著相機(jī)與錄音镰吵,去河邊找鬼。 笑死挂签,一個(gè)胖子當(dāng)著我的面吹牛疤祭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播饵婆,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼勺馆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了侨核?” 一聲冷哼從身側(cè)響起草穆,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搓译,沒想到半個(gè)月后悲柱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡些己,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年诗祸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了跑芳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡直颅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出怀樟,到底是詐尸還是另有隱情功偿,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布往堡,位于F島的核電站械荷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏虑灰。R本人自食惡果不足惜吨瞎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望穆咐。 院中可真熱鬧颤诀,春花似錦、人聲如沸对湃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拍柒。三九已至心傀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拆讯,已是汗流浹背脂男。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留种呐,地道東北人宰翅。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像陕贮,于是被迫代替她去往敵國和親堕油。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容