麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python + selenium + requests實現12306全自動搶票及驗證碼破解加自動點

2020-02-15 23:46:42
字體:
來源:轉載
供稿:網友

測試結果: 

整個買票流程可以再快一點,不過為了穩定起見,有些地方等待了一些時間

完整程序,拿去可用

整個程序分了三個模塊:購票模塊(主體)、驗證碼識別模塊、余票查詢模塊

購票模塊:

from selenium import webdriverfrom selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import NoSuchElementException, StaleElementReferenceException, ElementNotVisibleExceptionimport timeimport requestsfrom urllib.parse import urlencodefrom pyquery import PyQuery as pqfrom check_ticket import Checkfrom verify import Codeimport jsonclass Buy_Ticket():  def __init__(self, start_station, end_station, date, username, password, purpose):    self.num = 1    self.start = start_station    self.end = end_station    self.date = date    self.username = username    self.password = password    self.purpose = purpose    self.login_url = 'https://kyfw.12306.cn/otn/login/init'    self.ticket_url = 'https://kyfw.12306.cn/otn/leftTicket/init'  def login(self):    browser.get(self.login_url)    try:      input_name = browser.find_element_by_id('username')      input_pd = browser.find_element_by_id('password')      button = browser.find_element_by_id('loginSub')      time.sleep(1)      input_name.send_keys(self.username)      input_pd.send_keys(self.password)      c = Code(browser)    #調用驗證碼識別模塊      c.main()      button.click()      time.sleep(2)      #等待頁面跳轉,如果驗證碼識別錯誤,就執行下面的while語句      while browser.current_url == self.login_url + '#':        c = Code(browser)        c.main()        button.click()        time.sleep(2)      #self.get_passenger()      self.check()    except NoSuchElementException:      self.login()  def check(self):    #調用余票查詢模塊    check = Check(self.date, self.start, self.end, self.purpose)    start_end = check.look_up_station()    self.num = check.get_info()    #cookie的添加,json.dumps把以漢字形式呈現的起始、終點站轉化成unicode編碼,可在審查元素里查看cookie    browser.add_cookie({'name':'_jc_save_fromStation', 'value':json.dumps(self.start).strip('"').replace('//', '%') + '%2C' + start_end[0]})    browser.add_cookie({'name':'_jc_save_toStation', 'value':json.dumps(self.end).strip('"').replace('//', '%') + '%2C' + start_end[1]})    browser.add_cookie({'name':'_jc_save_fromDate', 'value':self.date})    browser.get(self.ticket_url)    if self.purpose == '學生':      btn = browser.find_element_by_id('sf2')      time.sleep(1)      btn.click()    button = browser.find_element_by_id('query_ticket')    time.sleep(1)    button.click()  def book_ticket(self):    print('開始預訂車票...')    #先查找出所有車次對應的預訂按鈕,再根據余票查詢模塊返回的車次序號,點擊相應的預訂按鈕    button = browser.find_elements_by_class_name('btn72')    button[self.num-1].click()    time.sleep(3)    button2 = browser.find_element_by_id('normalPassenger_0') #按實際情況,可自行修改,這里就選擇的第一個常用聯系人,                                  #第二個是normalPassenger_1,依此類推    button2.click()    button3 = browser.find_element_by_id('submitOrder_id')    time.sleep(1)    button3.click()    time.sleep(3) #等待頁面加載完畢,不然后面可能會報錯,等待時間自行決定    try:      button4 = browser.find_element_by_id('qr_submit_id')      button4.click()    except ElementNotVisibleException:      button4 = browser.find_element_by_id('qr_submit_id')      button4.click()    print('車票預定成功!請在30分鐘內完成付款!')  def main(self):    self.login()    self.book_ticket()if __name__ == '__main__':  begin = time.time()  browser = webdriver.Chrome()  b = Buy_Ticket('上海', '重慶', '2018-09-18', '賬號', '密碼', 'ADULT') #賬號、密碼自行修改  b.main()  end = time.time()  print('總耗時:%d秒' % int(end-begin))  #browser.close()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品视频不卡 | 免费a级观看 | 中文在线日韩 | 黄色片网站在线看 | 欧美人禽| 欧美一级不卡视频 | 亚洲91在线| 国产精品啪一品二区三区粉嫩 | 激情综合视频 | 久久久国产精品免费观看 | 在线 日本 制服 中文 欧美 | www.91视频com | 久久久久久久高清 | 成人三级免费电影 | 狠狠99| 免费看真人a一级毛片 | 欧美人与禽性xxxxx杂性 | 精品麻豆cm视频在线看 | 性高跟鞋xxxxhd4kvideos | 国产精品嘿咻嘿咻在线播放 | xxxx69hd一hd72 | 久久免费观看一级毛片 | 日韩视频一区二区三区在线观看 | 欧美a级大胆视频 | 免费观看9x视频网站在线观看 | 免费在线观看国产 | 欧美一级淫片免费视频1 | 国产一区二区午夜 | 激情久久一区二区 | 国产一区二区在线免费播放 | 91视频久久 | 国产二三区 | 毛片免费在线 | 看国产一级毛片 | 2021免费日韩视频网 | 久久激情免费视频 | 成人区精品一区二区婷婷 | 黄色av网站免费看 | 国产视频在线观看一区二区三区 | 国产女厕一区二区三区在线视 | 在线中文资源免费 |