python+splinter自動刷新?lián)屍惫δ?/h1>
更新時間:2021年07月12日 11:50:42 作者:qq_41235053
這篇文章主要為大家詳細(xì)介紹了python+splinter自動刷新?lián)屍惫δ?,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
搶票腳本,python +splinter自動刷新?lián)屍?,可以成功搶到(依賴自己的網(wǎng)絡(luò)環(huán)境太厲害,還有機(jī)器的好壞),但是感覺不是很完美。
有大神請指導(dǎo)完善一下(或者有沒有別的好點(diǎn)的思路),不勝感謝。
# -*- coding: utf-8 -*-
"""
@author: liuyw
"""
from splinter.browser import Browser
from time import sleep
import traceback
import time, sys
class huoche(object):
"""docstring for huoche"""
driver_name=''
executable_path=''
#用戶名,密碼
username = u"xxx@qq.com"
passwd = u"xxxx"
# cookies值得自己去找, 下面兩個分別是上海, 太原南
starts = u"%u4E0A%u6D77%2CSHH"
ends = u"%u592A%u539F%2CTYV"
# 時間格式2018-01-19
dtime = u"2018-01-19"
# 車次,選擇第幾趟,0則從上之下依次點(diǎn)擊
order = 0
###乘客名
users = [u"xxx",u"xxx"]
##席位
xb = u"二等座"
pz=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"
buy="https://kyfw.12306.cn/otn/confirmPassenger/initDc"
login_url='https://kyfw.12306.cn/otn/login/init'
def __init__(self):
self.driver_name='chrome'
self.executable_path='/usr/local/bin/chromedriver'
def login(self):
self.driver.visit(self.login_url)
self.driver.fill("loginUserDTO.user_name", self.username)
# sleep(1)
self.driver.fill("userDTO.password", self.passwd)
print u"等待驗證碼,自行輸入..."
while True:
if self.driver.url != self.initmy_url:
sleep(1)
else:
break
def start(self):
self.driver=Browser(driver_name=self.driver_name,executable_path=self.executable_path)
self.driver.driver.set_window_size(1400, 1000)
self.login()
# sleep(1)
self.driver.visit(self.ticket_url)
try:
print u"購票頁面開始..."
# sleep(1)
# 加載查詢信息
self.driver.cookies.add({"_jc_save_fromStation": self.starts})
self.driver.cookies.add({"_jc_save_toStation": self.ends})
self.driver.cookies.add({"_jc_save_fromDate": self.dtime})
self.driver.reload()
count=0
if self.order!=0:
while self.driver.url==self.ticket_url:
self.driver.find_by_text(u"查詢").click()
count += 1
print u"循環(huán)點(diǎn)擊查詢... 第 %s 次" % count
# sleep(1)
try:
self.driver.find_by_text(u"預(yù)訂")[self.order - 1].click()
except Exception as e:
print e
print u"還沒開始預(yù)訂"
continue
else:
while self.driver.url == self.ticket_url:
self.driver.find_by_text(u"查詢").click()
count += 1
print u"循環(huán)點(diǎn)擊查詢... 第 %s 次" % count
# sleep(0.8)
try:
for i in self.driver.find_by_text(u"預(yù)訂"):
i.click()
sleep(1)
except Exception as e:
print e
print u"還沒開始預(yù)訂 %s" %count
continue
print u"開始預(yù)訂..."
# sleep(3)
# self.driver.reload()
sleep(1)
print u'開始選擇用戶...'
for user in self.users:
self.driver.find_by_text(user).last.click()
print u"提交訂單..."
sleep(1)
# self.driver.find_by_text(self.pz).click()
# self.driver.find_by_id('').select(self.pz)
# # sleep(1)
# self.driver.find_by_text(self.xb).click()
# sleep(1)
self.driver.find_by_id('submitOrder_id').click()
# print u"開始選座..."
# self.driver.find_by_id('1D').last.click()
# self.driver.find_by_id('1F').last.click()
sleep(1.5)
print u"確認(rèn)選座..."
self.driver.find_by_id('qr_submit_id').click()
except Exception as e:
print e
if __name__ == '__main__':
huoche=huoche()
huoche.start()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 教你用Python來制作一個自動搶票的腳本小程序
- 基于Python實現(xiàn)火車票搶票軟件
- 一款開源的Python一鍵搶票神器詳細(xì)配置
- python爬蟲實現(xiàn)最新12306搶票
- python3顯式變量類型typing的實現(xiàn)
- Python爬蟲 12306搶票開源代碼過程詳解
- python并發(fā)編程多進(jìn)程 模擬搶票實現(xiàn)過程
- Python實現(xiàn)12306火車票搶票系統(tǒng)
- python+Splinter實現(xiàn)12306搶票功能
- 一百多行python代碼實現(xiàn)搶票助手
- Python編寫一個多線程的12306搶票程序的示例
相關(guān)文章
-
python gensim使用word2vec詞向量處理中文語料的方法
這篇文章主要介紹了python gensim使用word2vec詞向量處理中文語料的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧 2019-07-07
-
Django用戶認(rèn)證系統(tǒng)如何實現(xiàn)自定義
這篇文章主要介紹了Django用戶認(rèn)證系統(tǒng)如何實現(xiàn)自定義,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下 2020-11-11
-
教你怎么用PyCharm為同一服務(wù)器配置多個python解釋器
當(dāng)我們在服務(wù)器上創(chuàng)建了多個虛擬環(huán)境時,也可以在 PyCharm 中配置這些虛擬環(huán)境,方便不同的項目使用不同的環(huán)境,然而按照網(wǎng)上教程添加多個python解釋器后,PyCharm會自動幫我們創(chuàng)建多個重復(fù)的服務(wù)器,本文主要給出該問題的解決方法,同時也對添加解釋器做一個詳細(xì)的講解
2021-05-05
-
ubuntu系統(tǒng)下多個python版本如何設(shè)置默認(rèn)python和pip
pip是一個用來安裝Python軟件包的工具,下面這篇文章主要給大家介紹了關(guān)于ubuntu系統(tǒng)下多個python版本如何設(shè)置默認(rèn)python和pip的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下 2023-12-12
最新評論
搶票腳本,python +splinter自動刷新?lián)屍?,可以成功搶到(依賴自己的網(wǎng)絡(luò)環(huán)境太厲害,還有機(jī)器的好壞),但是感覺不是很完美。
有大神請指導(dǎo)完善一下(或者有沒有別的好點(diǎn)的思路),不勝感謝。
# -*- coding: utf-8 -*- """ @author: liuyw """ from splinter.browser import Browser from time import sleep import traceback import time, sys class huoche(object): """docstring for huoche""" driver_name='' executable_path='' #用戶名,密碼 username = u"xxx@qq.com" passwd = u"xxxx" # cookies值得自己去找, 下面兩個分別是上海, 太原南 starts = u"%u4E0A%u6D77%2CSHH" ends = u"%u592A%u539F%2CTYV" # 時間格式2018-01-19 dtime = u"2018-01-19" # 車次,選擇第幾趟,0則從上之下依次點(diǎn)擊 order = 0 ###乘客名 users = [u"xxx",u"xxx"] ##席位 xb = u"二等座" pz=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" buy="https://kyfw.12306.cn/otn/confirmPassenger/initDc" login_url='https://kyfw.12306.cn/otn/login/init' def __init__(self): self.driver_name='chrome' self.executable_path='/usr/local/bin/chromedriver' def login(self): self.driver.visit(self.login_url) self.driver.fill("loginUserDTO.user_name", self.username) # sleep(1) self.driver.fill("userDTO.password", self.passwd) print u"等待驗證碼,自行輸入..." while True: if self.driver.url != self.initmy_url: sleep(1) else: break def start(self): self.driver=Browser(driver_name=self.driver_name,executable_path=self.executable_path) self.driver.driver.set_window_size(1400, 1000) self.login() # sleep(1) self.driver.visit(self.ticket_url) try: print u"購票頁面開始..." # sleep(1) # 加載查詢信息 self.driver.cookies.add({"_jc_save_fromStation": self.starts}) self.driver.cookies.add({"_jc_save_toStation": self.ends}) self.driver.cookies.add({"_jc_save_fromDate": self.dtime}) self.driver.reload() count=0 if self.order!=0: while self.driver.url==self.ticket_url: self.driver.find_by_text(u"查詢").click() count += 1 print u"循環(huán)點(diǎn)擊查詢... 第 %s 次" % count # sleep(1) try: self.driver.find_by_text(u"預(yù)訂")[self.order - 1].click() except Exception as e: print e print u"還沒開始預(yù)訂" continue else: while self.driver.url == self.ticket_url: self.driver.find_by_text(u"查詢").click() count += 1 print u"循環(huán)點(diǎn)擊查詢... 第 %s 次" % count # sleep(0.8) try: for i in self.driver.find_by_text(u"預(yù)訂"): i.click() sleep(1) except Exception as e: print e print u"還沒開始預(yù)訂 %s" %count continue print u"開始預(yù)訂..." # sleep(3) # self.driver.reload() sleep(1) print u'開始選擇用戶...' for user in self.users: self.driver.find_by_text(user).last.click() print u"提交訂單..." sleep(1) # self.driver.find_by_text(self.pz).click() # self.driver.find_by_id('').select(self.pz) # # sleep(1) # self.driver.find_by_text(self.xb).click() # sleep(1) self.driver.find_by_id('submitOrder_id').click() # print u"開始選座..." # self.driver.find_by_id('1D').last.click() # self.driver.find_by_id('1F').last.click() sleep(1.5) print u"確認(rèn)選座..." self.driver.find_by_id('qr_submit_id').click() except Exception as e: print e if __name__ == '__main__': huoche=huoche() huoche.start()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- 教你用Python來制作一個自動搶票的腳本小程序
- 基于Python實現(xiàn)火車票搶票軟件
- 一款開源的Python一鍵搶票神器詳細(xì)配置
- python爬蟲實現(xiàn)最新12306搶票
- python3顯式變量類型typing的實現(xiàn)
- Python爬蟲 12306搶票開源代碼過程詳解
- python并發(fā)編程多進(jìn)程 模擬搶票實現(xiàn)過程
- Python實現(xiàn)12306火車票搶票系統(tǒng)
- python+Splinter實現(xiàn)12306搶票功能
- 一百多行python代碼實現(xiàn)搶票助手
- Python編寫一個多線程的12306搶票程序的示例
相關(guān)文章
python gensim使用word2vec詞向量處理中文語料的方法
這篇文章主要介紹了python gensim使用word2vec詞向量處理中文語料的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Django用戶認(rèn)證系統(tǒng)如何實現(xiàn)自定義
這篇文章主要介紹了Django用戶認(rèn)證系統(tǒng)如何實現(xiàn)自定義,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11教你怎么用PyCharm為同一服務(wù)器配置多個python解釋器
當(dāng)我們在服務(wù)器上創(chuàng)建了多個虛擬環(huán)境時,也可以在 PyCharm 中配置這些虛擬環(huán)境,方便不同的項目使用不同的環(huán)境,然而按照網(wǎng)上教程添加多個python解釋器后,PyCharm會自動幫我們創(chuàng)建多個重復(fù)的服務(wù)器,本文主要給出該問題的解決方法,同時也對添加解釋器做一個詳細(xì)的講解2021-05-05ubuntu系統(tǒng)下多個python版本如何設(shè)置默認(rèn)python和pip
pip是一個用來安裝Python軟件包的工具,下面這篇文章主要給大家介紹了關(guān)于ubuntu系統(tǒng)下多個python版本如何設(shè)置默認(rèn)python和pip的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12