日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python模拟火车订票系统_如何用python编写火车抢票助手

發布時間:2024/9/27 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python模拟火车订票系统_如何用python编写火车抢票助手 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前幾天跟朋友說打算寫一個搶票助手,最后由于某些原因念頭打消了。

可就在昨天晚上,才隱約記起一年前的自己曾經說過:一年后我一定要寫一個12306的搶票助手!瞬間激情澎湃,甚至已經是快臨近凌晨時便開始動工,可天意不能違,12306晚上11點便開始維護,后續階段程序不得不暫停;只能今天繼續完成最后一部分,幸好自己進度還是可以的,剛剛debug完畢就給大家分享一下!

開頭肯定是老套路

首先我們要安裝python的編譯環境,推薦使用python3.6(本文章使用的是python3);

python下載安裝網址:https://www.python.org/

安裝python的第三方工具庫selenium

selenium是Web

應用程序自動化測試工具,可模擬人為操作實現自動化的強大的工具庫

第二步:

下載chrome自動化驅動,鏈接:

http://chromedriver.storage.googleapis.com/index.html

chrome自動化驅動與chrome瀏覽器版本是有相對應的版本;chrome瀏覽器最新版本對應驅動版本2.35

具體驅動與瀏覽器版本映射表查看鏈接:

http://blog.csdn.net/huilan_same/article/details/51896672

第三步:進入主題,編寫代碼

引入庫文件

from selenium import webdriver from selenium.webdriver.common.keys import Keys import time

編寫主要代碼

us=input('請輸入12306賬號:')

pw=input('請輸入12306密碼:')

fromStation=input('請輸入出發站點:')

toStation=input('請輸入目的站點:')

date=input('請輸入出發時間(格式:2018-02-02):')

umber=input('請輸入列車號(區別大小寫):')

passenger=input('請輸入乘車人姓名(格式:姓名(學生)或者姓名):')

driver=webdriver.Chrome()#加載chrome驅動 login(us,pw)#登錄 query()#查詢 buyTicket()#搶票 confirm()#購票

乘車人姓名要預先在12306網址上存在,并且要按紅色方框內容填寫

編寫一個判斷xpath是否存在的函數XpathExist(driver,xpath)

def XpathExist(driver,xpath): ? ?"""

檢查xpath是否存在

:param driver,xpath:

:return:

""" ? ?try:

driver.find_element_by_xpath(xpath)#若不存在會拋出異常 ? ? ? ?return True ? ?except:

return False

編寫登錄12306函數login(us,pw)

#12306登錄 def login(us,pw): ? ?driver.get("https://kyfw.12306.cn/otn/login/init")#打開網址 ? ?username= driver.find_element_by_xpath('//*[@id="username"]')#獲取用戶名的位置 ? ?password=driver.find_element_by_xpath('//*[@id="password"]')#獲取密碼的位置 ? ?username.send_keys(us)#輸入用戶名 ? ?password.send_keys(pw)#輸入密碼 ? ?while True:

#鏈接跳轉則,登錄成功 ? ? ? ?if driver.current_url=='https://kyfw.12306.cn/otn/index/initMy12306':

break

編寫12306查詢函數query()

難點:主要就在輸入出發站跟目的站,12306反爬技術很強大,自己在這里調試了兩個小時,最后發現要先點擊一下,再清除內容,再輸入內容,再按鍵盤Down鍵,最后再按tab鍵才可以;時間則要用js處理。

#12306查詢 def query(): ? ?driver.get('https://kyfw.12306.cn/otn/leftTicket/init')#打開網址 ? ?fromStationText=driver.find_element_by_xpath('//*[@id="fromStationText"]')#獲取出發點的位置 ? ?toStationText=driver.find_element_by_xpath('//*[@id="toStationText"]')#獲取目的地的位置 ? ?#要先點擊一下,在清楚輸入框的內容,再輸入內容,再按鍵盤Down鍵,最后再按tab鍵 ? ?fromStationText.click()

fromStationText.clear();

fromStationText.send_keys(fromStation)

fromStationText.send_keys(Keys.DOWN)

fromStationText.send_keys(Keys.TAB)

toStationText.click()

toStationText.clear();

toStationText.send_keys(toStation)

toStationText.send_keys(Keys.DOWN)

toStationText.send_keys(Keys.TAB)

#用js輸入時間 ? ?js="document.getElementById('train_date').value='"+date+"'" ? ?driver.execute_script(js)

time.sleep(1)#等待1s ? ?while True:

xpath='//*[@id="query_ticket"]' ? ? ? ?if XpathExist(driver,xpath):

try:

driver.find_element_by_xpath(xpath).click()#點擊查詢按鈕 ? ? ? ? ? ? ? ?print("查詢中...")

break ? ? ? ? ? ?except:

continue

搶票函數buyTicket()

#搶票 def buyTicket(): ? ?while True:

try:

xpath="//a[text()='"+number+"']/../../../../../td[13]/a" ? ? ? ? ? ?if driver.current_url=='https://kyfw.12306.cn/otn/confirmPassenger/initDc':

break ? ? ? ? ? ?if XpathExist(driver,xpath):

order=driver.find_element_by_xpath(xpath)

order.click()

print("搶票中...")

else:

xpath='//*[@id="query_ticket"]' ? ? ? ? ? ? ? ?if XpathExist(driver,xpath):

try:

driver.find_element_by_xpath(xpath).click()

except:

print("重新點擊")

except:

continue

確認購票confirm()

#確認購票 def confirm(): ? ?while True:

try:

xpath='//*[@id="content_defaultwarningAlert_hearder"]/a' ? ? ? ? ? ?if XpathExist(driver,xpath):

driver.find_element_by_xpath(xpath)

print(driver.find_element_by_xpath(xpath))

else:

xpath='//label[text()="'+passenger+'"]' ? ? ? ? ? ? ? ?while True:

try:

driver.find_element_by_xpath(xpath).click()

break ? ? ? ? ? ? ? ? ? ?except:

continue ? ? ? ? ? ? ? ?xpath='//*[@id="dialog_xsertcj_ok"]' ? ? ? ? ? ? ? ?if XpathExist(driver,xpath):

print("確認彈出窗口中...")

while True:

try:

driver.find_element_by_xpath(xpath).click()

break ? ? ? ? ? ? ? ? ? ? ? ?except:

break ? ? ? ? ? ? ? ?xpath='//*[@id="content_defaultwarningAlert_title"]' ? ? ? ? ? ? ? ?if XpathExist(driver,xpath):

print('目前沒票')

else:

print("點擊成功")

driver.find_element_by_xpath('//*[@id="submitOrder_id"]').click()

while True:

try:

if driver.current_url!='https://kyfw.12306.cn/otn/confirmPassenger/initDc':

print("搶票成功,請及時付款")

break ? ? ? ? ? ? ? ? ? ? ? ? ? ?xpath='//*[@id="orderResultInfo_id"]/div/span' ? ? ? ? ? ? ? ? ? ? ? ? ? ?if XpathExist(driver,xpath):

print('搶票失敗')

break ? ? ? ? ? ? ? ? ? ? ? ? ? ?driver.find_element_by_xpath('//*[@id="qr_submit_id"]').click()

except:

continue ? ? ? ? ? ? ? ? ? ?break ? ? ? ?except:

continue

由于想到這幾天大家要開始第一輪搶票模式,所以剛剛寫完的程序,沒有經過大量測試,我便匆匆忙忙發布上來供大家分享;如果在使用中發現有bug,歡迎在本公眾號后臺留言,我會及時的處理!

為了不懂編程的小伙伴,同時我也對應發布了可執行的exe文件。

祝大家搶票成功!

本文內容轉載自網絡,本著傳播與分享的原則,來源/作者信息已在文章頂部表明,版權歸原作者所有,如有侵權請聯系我們進行刪除!

總結

以上是生活随笔為你收集整理的python模拟火车订票系统_如何用python编写火车抢票助手的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线免费黄 | av在线不卡网站 | 成人动漫视频在线观看 | 日韩av毛片在线观看 | 玩日本老头很兴奋xxxx | 韩国19主播内部福利vip | 国产做爰免费视频观看 | 成人小视频免费看 | 日韩a级片在线观看 | 色婷婷色婷婷 | 狠狠操人人干 | 日韩激情视频 | 久久久精品一区二区涩爱 | 日韩视频在线观看免费视频 | 日本美女影院 | 人人精品久久 | 成人深夜在线观看 | 波多野结衣视频免费观看 | 涩涩涩综合 | 日本激情一区 | 欧美二区三区 | 人妻一区二区三区四区五区 | 一区不卡av | а√在线中文网新版地址在线 | 国产黄色片在线观看 | 风间由美av | www.射| 91av看片 | 亚洲成人mv | 偷偷色噜狠狠狠狠的777米奇 | 二区三区免费 | 蜜桃视频一区 | 橹图极品美女无圣光 | 天啪| 午夜av免费看 | 成人激情视频在线 | 欧美精品videos极品 | 久久网站免费看 | 免费在线视频一区二区 | 久操福利视频 | 亚洲精品视频导航 | 成人18视频在线观看 | 亚洲精品字幕 | 一区二区三区欧美精品 | 日韩欧美h| 2021国产在线视频 | 精品无码一区二区三区蜜臀 | 国产精品欧美综合亚洲 | 成年人久久 | 日韩一级免费观看 | 亚洲精品久久久久久国 | 日韩人妻精品无码一区二区三区 | 婷婷俺也去 | 亚洲激情三区 | 国产精品综合在线 | 俺也去在线视频 | 国产精品白嫩白嫩大学美女 | 久久中文免费视频 | 亚洲免费三级 | 美日韩免费 | 日韩欧美一级视频 | 色哟哟网站在线观看 | 91久久国语露脸精品国产高跟 | 美痴女~美人上司北岛玲 | av网站久久 | 欧美一级特黄视频 | 国产性猛交╳xxx乱大交一区 | 色哟哟视频网站 | 草久在线视频 | 日本少妇大战黑人 | 国产一区二区成人 | 国产精品网站免费 | 黑人中文字幕一区二区三区 | 国模无码一区二区三区 | av一区二区三区在线观看 | 国产成人免费观看视频 | 农村妇女毛片精品久久久 | 哈利波特3在线观看免费版英文版 | 蜜桃视频在线播放 | 久久久人人人 | 老司机午夜影院 | av一二三| 亚洲韩国精品 | 欧美亚洲一级 | 91精品国产91综合久久蜜臀 | 国产美女网站视频 | 国产成人综合网 | 尹人香蕉 | 伊人色影院 | 中文字幕综合在线 | 成人夜间视频 | 在线免费观看黄色小视频 | 亚洲中文字幕无码不卡电影 | 色91| 乱子伦视频在线看 | 日本黄色a级片 | 天天干天天搞天天射 | 日日操日日干 | 一区二区日韩电影 |