亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > 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()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧洲日产国码av系列天堂| 欧美大片免费观看| 日韩有码视频在线| 97超碰蝌蚪网人人做人人爽| 欧美日韩国产成人在线观看| 一区二区三区www| 亚洲天堂男人天堂| 色噜噜国产精品视频一区二区| 欧美日韩人人澡狠狠躁视频| 亚洲精品影视在线观看| 色婷婷亚洲mv天堂mv在影片| 欧美电影免费观看电视剧大全| 日韩久久精品电影| 久久91亚洲精品中文字幕| 国产精品免费久久久| 国产精品久久久久久久久久久久久| 欧美成人三级视频网站| 亚洲欧美色婷婷| 8090成年在线看片午夜| 国产成人精品视| 精品magnet| 美日韩丰满少妇在线观看| 91久久综合亚洲鲁鲁五月天| 亚洲一区二区三区四区在线播放| 成人a在线观看| 亚洲丁香久久久| 亚洲视频精品在线| 日韩精品在线播放| 国产a∨精品一区二区三区不卡| 精品国产乱码久久久久酒店| 国产精品揄拍一区二区| 欧美高清视频一区二区| 国产精品视频26uuu| 日韩av成人在线观看| 久久久精品国产亚洲| 国产精品毛片a∨一区二区三区|国| 日韩成人在线电影网| 久久99精品国产99久久6尤物| 国产乱人伦真实精品视频| 久久久在线观看| 国模私拍一区二区三区| 2024亚洲男人天堂| 欧美一区二三区| 久久久久国产一区二区三区| 91在线免费看网站| 成人黄色av网站| 亚洲加勒比久久88色综合| 欧美激情视频一区二区三区不卡| 日韩在线播放av| 韩国v欧美v日本v亚洲| 欧美电影在线观看完整版| 亚洲精品视频免费| 成人久久一区二区三区| 精品欧美国产一区二区三区| 欧美丰满片xxx777| 亚洲欧美中文字幕| 亚洲女同精品视频| 成人春色激情网| 国产做受高潮69| 欧美日韩高清区| 欧美高清理论片| 亚洲a成v人在线观看| 日本一区二区在线播放| 亚洲黄色在线观看| 欧美丝袜美女中出在线| 亚洲国产精品久久久久秋霞蜜臀| 亚洲精品美女免费| 国产原创欧美精品| 久久精品国产69国产精品亚洲| 综合av色偷偷网| 精品av在线播放| 国产精品99导航| 一本色道久久综合狠狠躁篇的优点| 国产精品视频区| 亚洲999一在线观看www| 精品动漫一区二区三区| 伊人久久久久久久久久久| 中文字幕无线精品亚洲乱码一区| 欧美乱大交xxxxx另类电影| 国产精品国产三级国产aⅴ浪潮| 国产精品福利在线| 久久精品亚洲国产| 亚洲欧美日韩第一区| 久久久精品国产亚洲| 欧美成人自拍视频| 欧美成人高清视频| 91精品免费久久久久久久久| 永久免费看mv网站入口亚洲| 精品亚洲国产视频| 成人黄色中文字幕| 成人免费在线视频网址| 国产亚洲精品va在线观看| 亚洲欧美中文另类| 性欧美xxxx视频在线观看| 一区二区三区四区在线观看视频| 亚洲电影在线观看| 亚洲国产欧美一区二区三区久久| 国产一区二区日韩| 92看片淫黄大片欧美看国产片| 欧美性做爰毛片| 91精品国产乱码久久久久久蜜臀| 亚洲视频axxx| 欧美午夜精品在线| 成人97在线观看视频| 亚洲欧美999| 国产女人精品视频| 亚洲视频一区二区三区| 日韩av免费在线观看| 中文字幕国内精品| 亚洲欧美日韩综合| 97国产精品视频人人做人人爱| 91精品啪aⅴ在线观看国产| 在线视频亚洲欧美| 日韩av网址在线| 欧美激情高清视频| 在线视频欧美日韩精品| 2019日本中文字幕| 国产精品69精品一区二区三区| 高清视频欧美一级| 亚洲欧美国产精品va在线观看| 91免费精品视频| 国产一区二区在线播放| 国产精品网址在线| 高跟丝袜一区二区三区| 国产亚洲美女久久| 欧美日韩在线视频一区| 亚洲美女又黄又爽在线观看| 欧美wwwxxxx| 一本久久综合亚洲鲁鲁| 日韩国产欧美精品一区二区三区| 国模精品一区二区三区色天香| 91网站在线免费观看| 欧洲美女7788成人免费视频| 欧美精品999| 黑人狂躁日本妞一区二区三区| 欧美另类老女人| 日韩av在线电影网| 国产精品日日摸夜夜添夜夜av| 久久久久久12| 亚洲国产欧美久久| 国产精品视频免费在线观看| 亚洲乱码av中文一区二区| 精品欧美aⅴ在线网站| 原创国产精品91| 性色av香蕉一区二区| 亚洲欧洲日产国产网站| 亚洲理论电影网| 色诱女教师一区二区三区| 亚洲国产精品久久久久秋霞不卡| 中国日韩欧美久久久久久久久| 欧美激情一区二区久久久| 视频在线一区二区| 欧美一区二区三区免费观看| 91亚洲精华国产精华| 午夜美女久久久久爽久久| 亚洲国产精品成人va在线观看| zzijzzij亚洲日本成熟少妇| 中文精品99久久国产香蕉| 欧美交受高潮1| 久热精品视频在线观看一区| 俺去亚洲欧洲欧美日韩| 午夜精品久久久久久久久久久久| 亚洲自拍高清视频网站| 亚洲天堂成人在线|