python+splinter自動(dòng)刷新?lián)屍惫δ?/h1>
更新時(shí)間:2021年07月12日 11:50:42 作者:qq_41235053
這篇文章主要為大家詳細(xì)介紹了python+splinter自動(dòng)刷新?lián)屍惫δ?,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
搶票腳本,python +splinter自動(dòng)刷新?lián)屍?,可以成功搶到(依?lài)自己的網(wǎng)絡(luò)環(huán)境太厲害,還有機(jī)器的好壞),但是感覺(jué)不是很完美。
有大神請(qǐng)指導(dǎo)完善一下(或者有沒(méi)有別的好點(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=''
#用戶(hù)名,密碼
username = u"xxx@qq.com"
passwd = u"xxxx"
# cookies值得自己去找, 下面兩個(gè)分別是上海, 太原南
starts = u"%u4E0A%u6D77%2CSHH"
ends = u"%u592A%u539F%2CTYV"
# 時(shí)間格式2018-01-19
dtime = u"2018-01-19"
# 車(chē)次,選擇第幾趟,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"等待驗(yàn)證碼,自行輸入..."
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"購(gòu)票頁(yè)面開(kāi)始..."
# sleep(1)
# 加載查詢(xún)信息
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"查詢(xún)").click()
count += 1
print u"循環(huán)點(diǎn)擊查詢(xú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"還沒(méi)開(kāi)始預(yù)訂"
continue
else:
while self.driver.url == self.ticket_url:
self.driver.find_by_text(u"查詢(xún)").click()
count += 1
print u"循環(huán)點(diǎn)擊查詢(xú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"還沒(méi)開(kāi)始預(yù)訂 %s" %count
continue
print u"開(kāi)始預(yù)訂..."
# sleep(3)
# self.driver.reload()
sleep(1)
print u'開(kāi)始選擇用戶(hù)...'
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"開(kāi)始選座..."
# 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()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 教你用Python來(lái)制作一個(gè)自動(dòng)搶票的腳本小程序
- 基于Python實(shí)現(xiàn)火車(chē)票搶票軟件
- 一款開(kāi)源的Python一鍵搶票神器詳細(xì)配置
- python爬蟲(chóng)實(shí)現(xiàn)最新12306搶票
- python3顯式變量類(lèi)型typing的實(shí)現(xiàn)
- Python爬蟲(chóng) 12306搶票開(kāi)源代碼過(guò)程詳解
- python并發(fā)編程多進(jìn)程 模擬搶票實(shí)現(xiàn)過(guò)程
- Python實(shí)現(xiàn)12306火車(chē)票搶票系統(tǒng)
- python+Splinter實(shí)現(xiàn)12306搶票功能
- 一百多行python代碼實(shí)現(xiàn)搶票助手
- Python編寫(xiě)一個(gè)多線程的12306搶票程序的示例
相關(guān)文章
-
Python 數(shù)據(jù)可視化pyecharts的使用詳解
這篇文章主要介紹了Python 數(shù)據(jù)可視化pyecharts的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧 2019-06-06
-
用Python寫(xiě)飛機(jī)大戰(zhàn)游戲之pygame入門(mén)(4):獲取鼠標(biāo)的位置及運(yùn)動(dòng)
這篇文章主要介紹了用Python寫(xiě)飛機(jī)大戰(zhàn)游戲之pygame入門(mén)(4):獲取鼠標(biāo)的位置及運(yùn)動(dòng),需要的朋友可以參考下 2015-11-11
-
python3 dict ndarray 存成json,并保留原數(shù)據(jù)精度的實(shí)例
今天小編就為大家分享一篇python3 dict ndarray 存成json,并保留原數(shù)據(jù)精度的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧 2019-12-12
-
Python Paramiko創(chuàng)建文件目錄并上傳文件詳解
Paramiko是一個(gè)用于進(jìn)行SSH2會(huì)話(huà)的Python庫(kù),它支持加密、認(rèn)證和文件傳輸?shù)裙δ?本文旨在詳細(xì)指導(dǎo)新手朋友如何使用Python的Paramiko庫(kù)來(lái)創(chuàng)建遠(yuǎn)程文件目錄并上傳文件,希望對(duì)大家有所幫助 2024-10-10
-
Python學(xué)習(xí)筆記整理3之輸入輸出、python eval函數(shù)
這篇文章主要介紹了Python學(xué)習(xí)筆記整理3之輸入輸出、python eval函數(shù)的相關(guān)資料,需要的朋友可以參考下 2015-12-12
-
TensorFlow安裝CPU版本和GPU版本的實(shí)現(xiàn)步驟
本文主要介紹了TensorFlow安裝CPU版本和GPU版本的實(shí)現(xiàn)步驟,文中通過(guò)圖文示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧 2025-03-03
-
Python?selenium下拉選擇框?qū)崙?zhàn)應(yīng)用例子
Selenium是一個(gè)開(kāi)源的和便攜式的自動(dòng)化軟件測(cè)試工具,用于測(cè)試Web應(yīng)用程序有能力在不同的瀏覽器和操作系統(tǒng)運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于Python?selenium下拉選擇框?qū)崙?zhàn)應(yīng)用的相關(guān)資料,需要的朋友可以參考下 2022-07-07
-
Python?Decorator的設(shè)計(jì)模式演繹過(guò)程解析
本文主要梳理了Python?decorator的實(shí)現(xiàn)思路,解釋了為什么Python?decorator是現(xiàn)在這個(gè)樣子,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪 2022-07-07
最新評(píng)論
搶票腳本,python +splinter自動(dòng)刷新?lián)屍?,可以成功搶到(依?lài)自己的網(wǎng)絡(luò)環(huán)境太厲害,還有機(jī)器的好壞),但是感覺(jué)不是很完美。
有大神請(qǐng)指導(dǎo)完善一下(或者有沒(méi)有別的好點(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=''
#用戶(hù)名,密碼
username = u"xxx@qq.com"
passwd = u"xxxx"
# cookies值得自己去找, 下面兩個(gè)分別是上海, 太原南
starts = u"%u4E0A%u6D77%2CSHH"
ends = u"%u592A%u539F%2CTYV"
# 時(shí)間格式2018-01-19
dtime = u"2018-01-19"
# 車(chē)次,選擇第幾趟,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"等待驗(yàn)證碼,自行輸入..."
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"購(gòu)票頁(yè)面開(kāi)始..."
# sleep(1)
# 加載查詢(xún)信息
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"查詢(xún)").click()
count += 1
print u"循環(huán)點(diǎn)擊查詢(xú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"還沒(méi)開(kāi)始預(yù)訂"
continue
else:
while self.driver.url == self.ticket_url:
self.driver.find_by_text(u"查詢(xún)").click()
count += 1
print u"循環(huán)點(diǎn)擊查詢(xú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"還沒(méi)開(kāi)始預(yù)訂 %s" %count
continue
print u"開(kāi)始預(yù)訂..."
# sleep(3)
# self.driver.reload()
sleep(1)
print u'開(kāi)始選擇用戶(hù)...'
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"開(kāi)始選座..."
# 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()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 教你用Python來(lái)制作一個(gè)自動(dòng)搶票的腳本小程序
- 基于Python實(shí)現(xiàn)火車(chē)票搶票軟件
- 一款開(kāi)源的Python一鍵搶票神器詳細(xì)配置
- python爬蟲(chóng)實(shí)現(xiàn)最新12306搶票
- python3顯式變量類(lèi)型typing的實(shí)現(xiàn)
- Python爬蟲(chóng) 12306搶票開(kāi)源代碼過(guò)程詳解
- python并發(fā)編程多進(jìn)程 模擬搶票實(shí)現(xiàn)過(guò)程
- Python實(shí)現(xiàn)12306火車(chē)票搶票系統(tǒng)
- python+Splinter實(shí)現(xiàn)12306搶票功能
- 一百多行python代碼實(shí)現(xiàn)搶票助手
- Python編寫(xiě)一個(gè)多線程的12306搶票程序的示例
相關(guān)文章
Python 數(shù)據(jù)可視化pyecharts的使用詳解
這篇文章主要介紹了Python 數(shù)據(jù)可視化pyecharts的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
用Python寫(xiě)飛機(jī)大戰(zhàn)游戲之pygame入門(mén)(4):獲取鼠標(biāo)的位置及運(yùn)動(dòng)
這篇文章主要介紹了用Python寫(xiě)飛機(jī)大戰(zhàn)游戲之pygame入門(mén)(4):獲取鼠標(biāo)的位置及運(yùn)動(dòng),需要的朋友可以參考下2015-11-11
python3 dict ndarray 存成json,并保留原數(shù)據(jù)精度的實(shí)例
今天小編就為大家分享一篇python3 dict ndarray 存成json,并保留原數(shù)據(jù)精度的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
Python Paramiko創(chuàng)建文件目錄并上傳文件詳解
Paramiko是一個(gè)用于進(jìn)行SSH2會(huì)話(huà)的Python庫(kù),它支持加密、認(rèn)證和文件傳輸?shù)裙δ?本文旨在詳細(xì)指導(dǎo)新手朋友如何使用Python的Paramiko庫(kù)來(lái)創(chuàng)建遠(yuǎn)程文件目錄并上傳文件,希望對(duì)大家有所幫助2024-10-10
Python學(xué)習(xí)筆記整理3之輸入輸出、python eval函數(shù)
這篇文章主要介紹了Python學(xué)習(xí)筆記整理3之輸入輸出、python eval函數(shù)的相關(guān)資料,需要的朋友可以參考下2015-12-12
TensorFlow安裝CPU版本和GPU版本的實(shí)現(xiàn)步驟
本文主要介紹了TensorFlow安裝CPU版本和GPU版本的實(shí)現(xiàn)步驟,文中通過(guò)圖文示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
Python?selenium下拉選擇框?qū)崙?zhàn)應(yīng)用例子
Selenium是一個(gè)開(kāi)源的和便攜式的自動(dòng)化軟件測(cè)試工具,用于測(cè)試Web應(yīng)用程序有能力在不同的瀏覽器和操作系統(tǒng)運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于Python?selenium下拉選擇框?qū)崙?zhàn)應(yīng)用的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python?Decorator的設(shè)計(jì)模式演繹過(guò)程解析
本文主要梳理了Python?decorator的實(shí)現(xiàn)思路,解釋了為什么Python?decorator是現(xiàn)在這個(gè)樣子,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07

