python制作自动抢票_python自动抢票
# -*- coding: utf-8 -*-
from splinter.browser import Browser
from time import sleep
import traceback
#初始化信息
# 用戶名,密碼
username = u"用戶名"
passwd = u"密碼"
# cookies值得自己去找
starts = u"杭州,HZH"
ends = u"黃石,HSN"
# 時(shí)間格式2016-03-22
dtime = u"2016-03-22"
# 車次,選擇第幾趟,0則從上之下依次點(diǎn)擊
order = 0
###乘客名,如果是自己,則上面有個(gè)鏈接是自己的,會(huì)跳轉(zhuǎn)到個(gè)人中心,用index[1]
#如果乘客不是自己,則用index[0]
pa = u"名字"
"""網(wǎng)址"""
ticket_url = "https://kyfw.12306.cn/otn/leftTicket/init"
login_url = "https://kyfw.12306.cn/otn/login/init"
initmy_url = "https://kyfw.12306.cn/otn/index/initMy12306"
def login():
#點(diǎn)擊登錄,從購(gòu)票頁面調(diào)到了登錄頁面
b.find_by_text(u"登錄").click()
sleep(3)
#給name為loginUserDTO.user_name附上用戶名
#也可以用Id查找的方法b.find_by_id('username').fill(username)
b.fill("loginUserDTO.user_name", username)
sleep(1)
#給name為userDTO.password值
b.fill("userDTO.password", passwd)
sleep(1)
#驗(yàn)證碼必須手動(dòng)輸入
print u"等待驗(yàn)證碼,自行輸入..."
#檢測(cè)頁面是否跳轉(zhuǎn)(用戶是否輸入了驗(yàn)證碼并且提交)
while True:
if b.url != initmy_url:
sleep(1)
else:
break
def huoche():
global b
b = Browser(driver_name="chrome")
#訪問12306
b.visit(ticket_url)
#查找?guī)У卿浀淖址?#xff0c;u是避免中文報(bào)錯(cuò)
while b.is_text_present(u"登錄"):
sleep(1)
#如果存在調(diào)用登錄方法
login()
if b.url == initmy_url:
break
#當(dāng)執(zhí)行完login方法后,登錄成功,繼續(xù)向下執(zhí)行
try:
print u"購(gòu)票頁面..."
# 跳回購(gòu)票頁面
b.visit(ticket_url)
# 加載查詢信息
b.cookies.add({"_jc_save_fromStation": starts})
b.cookies.add({"_jc_save_toStation": ends})
b.cookies.add({"_jc_save_fromDate": dtime})
b.reload()
sleep(2)
count = 0
# 循環(huán)點(diǎn)擊預(yù)訂
#order=0則從第一班車開始全部依次預(yù)訂
if order != 0:
#如果頁面沒有跳轉(zhuǎn)到,說明沒有搶到票,繼續(xù)搶票
while b.url == ticket_url:
#點(diǎn)擊查詢進(jìn)行刷新
b.find_by_text(u"查詢").click()
count +=1
print u"循環(huán)點(diǎn)擊查詢... 第 %s 次" % count
sleep(1)
try:
#點(diǎn)擊預(yù)訂的那班車
b.find_by_text(u"預(yù)訂")[order - 1].click()
except:
print u"還沒開始預(yù)訂"
continue
else:
while b.url == ticket_url:
b.find_by_text(u"查詢").click()
count += 1
print u"循環(huán)點(diǎn)擊查詢... 第 %s 次" % count
sleep(1)
try:
#從第一個(gè)開始依次預(yù)訂
for i in b.find_by_text(u"預(yù)訂"):
i.click()
except:
print u"還沒開始預(yù)訂"
continue
sleep(1)
#若循環(huán)結(jié)束了,則選擇聯(lián)系人
b.find_by_text(pa)[0].click()
print u"能做的都做了.....不再對(duì)瀏覽器進(jìn)行任何操作"
except Exception as e:
print(traceback.print_exc())
if __name__ == "__main__":
huoche()
總結(jié)
以上是生活随笔為你收集整理的python制作自动抢票_python自动抢票的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python删除所有core文件_pyt
- 下一篇: 手机python3_python3 简