成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

自動搶票之 12306 搶票篇

開發 前端
大家好,這一篇是 12306 的自動預訂車票篇,前篇已經擼完了 12306 的自動登錄。小編希望小伙伴們能多給幾個贊,以示鼓勵。

[[412981]]

本文轉載自微信公眾號「Python技術」,作者派森醬。轉載本文請聯系Python技術公眾號。

大家好,這一篇是 12306 的自動預訂車票篇,前篇已經擼完了 12306 的自動登錄。小編希望小伙伴們能多給幾個贊,以示鼓勵。

查詢車票

首先 selenium 打開到 https://kyfw.12306.cn/otn/leftTicket/init 購票查詢車票頁面。這個頁面只有 2 個需要要模擬人工的操作:

填寫 出發地、目的地、出發日,點擊查詢按鈕

12306 的出發地、目的地、出發日的文本框用下面的代碼自動寫入似乎是沒什么作用的。

  1. ticket_url = 'https://kyfw.12306.cn/otn/leftTicket/init' 
  2. self.driver.get(ticket_url) 
  3. self.wait.until(self.findElement(By.ID, 'fromStationText')).send_keys('上海'
  4. self.wait.until(self.findElement(By.ID, 'toStationText')).send_keys('常州'
  5. self.wait.until(self.findElement(By.ID, 'train_date')).send_keys('2021-07-23'
  6. self.wait.until(EC.visibility_of_element_located((By.LINK_TEXT, '查詢'))).click() 

只能另辟蹊徑了。在頁面將目的地、出發地、出發日 填入,點擊查詢查詢,驚喜的發現在 F12 控制面板下 cookie 中存放了日期值。

可是沒有看到出發地和目的地的漢字,猜測可能這些漢字被編碼過了,在編碼網站解析一番。

于是就可以照貓畫虎將編碼過的目的地、出發地、出發日設置到 cookie 中,并刷新頁面。

  1. self.driver.add_cookie({'name''_jc_save_fromStation''value''%u5E38%u5DDE%2CCZH'}) #常州 
  2. self.driver.add_cookie({'name''_jc_save_toStation''value''%u4E0A%u6D77%2CSHH'}) #上海 
  3. self.driver.add_cookie({'name''_jc_save_fromDate''value''2021-08-02'}) 
  4. self.driver.refresh() 
  5. # 一個溫馨提示彈窗 
  6. self.wait.until(self.findElement(By.LINK_TEXT, '確認')).click() 
  7.  
  8. self.wait.until(self.findElement(By.LINK_TEXT, '查詢')).click() 

這時就將車票刷新出來了。

找到車次所在的行,點擊預定

這里用 XPath 語法找到車次所在的預訂單元格,用判斷瀏覽器地址是否改變的方式判斷是否進入到預訂頁面。

  1. # 是否進入預訂頁面 
  2. while self.driver.current_url == ticket_url: 
  3.     self.wait.until(self.findElement(By.LINK_TEXT, '查詢')).click() 
  4.     time.sleep(2) 
  5.     try: 
  6.         a = self.driver.find_element_by_xpath("//tr[@datatran='K1511']/preceding-sibling::tr[1]/child::node()[last()]/a"
  7.         if a.text == '預訂'
  8.             break 
  9.     except Exception as e: 
  10.         print("沒有車次"
  11.      
  12.     a.click() 

預訂

在預訂頁面就簡單了,只需要選擇乘車人和票種、席別。將這些信息定義在數組中,有幾個乘車人就定義幾個數組元素。

  1. passengers = ['xxx'
  2. ticketType = ['成人票'
  3. seatType = ['硬座(¥28.5)'
  4. for index, p in enumerate(passengers, 1): 
  5.     self.driver.find_element_by_xpath("//label[text()='"+p+"']/preceding-sibling::input[1]").click() 
  6.      
  7.      
  8.     selectTicketType = Select(self.driver.find_element_by_id('ticketType_' + str(index))) 
  9.     selectTicketType.select_by_visible_text(ticketType[index - 1]) 
  10.      
  11.     selectSeatType = Select(self.driver.find_element_by_id('seatType_' + str(index))) 
  12.     selectSeatType.select_by_visible_text(seatType[index - 1]) 
  13.      
  14.     self.driver.find_element_by_id('submitOrder_id').click() 
  15.      
  16.     self.driver.find_element_by_id('qr_submit_id').click() 

到這里就可以使用手機支付火車票了。

總結

 

兩篇文章寫完了 12306 的搶票軟件,大伙們只需要按照自己的需稍微的修改一下腳本,就可以在逢年過節搶搶搶了。

 

責任編輯:武曉燕 來源: Python技術
相關推薦

2013-01-17 10:49:42

2014-01-03 09:15:39

12306搶票360

2014-12-22 11:07:18

12306

2018-02-07 17:12:00

2019-01-09 09:35:41

搶票Python軟件

2013-12-09 14:21:45

12306搶票瀏覽器

2013-09-12 11:17:02

2013-09-12 11:14:52

假冒1230612306

2013-01-22 09:31:33

2018-01-10 15:23:09

2019-12-30 07:00:51

技術研發系統

2018-10-23 11:16:59

12306思路余票

2013-01-22 17:10:42

瀏覽器技術解析

2018-01-26 10:31:11

搶票軟件公平

2019-09-08 23:00:19

GitHub代碼開發者

2013-09-12 10:50:13

獵豹瀏覽器12306搶票軟件

2013-01-16 09:15:05

2013-01-21 16:02:29

Chrome搶票

2012-09-19 14:31:44

獵豹瀏覽器搶票

2013-01-16 11:42:16

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一级片 | 精品国产一区二区在线 | 日本视频免费观看 | 狠狠av | 在线观看的av | 欧美一区视频 | 黄色一级免费观看 | 国产91久久久久久 | 亚洲中午字幕 | 蜜臀网 | 久久最新| 在线播放亚洲 | 一区二区免费在线视频 | 国产在线一区二区三区 | 超碰超碰 | 日韩精彩视频 | 国产高清视频在线观看 | 337p日韩 | 日韩电影免费观看中文字幕 | 中文二区| 国产一区91精品张津瑜 | 成人性生交大片免费看中文带字幕 | 国产视频1区| 狠狠天天| 久久在线| 亚洲精品日韩一区二区电影 | 精品视频在线观看 | 99精品一区 | 精品亚洲二区 | 成人av在线播放 | 国产精品爱久久久久久久 | 涩涩操 | 国产午夜精品视频 | 午夜免费视频观看 | 在线天堂免费中文字幕视频 | 久久99精品久久久久 | 久久中文视频 | 亚洲精品久久久久久久久久久久久 | 超级乱淫av片免费播放 | 久久一区视频 | 人人爽人人草 |