fill splinter 延迟_学习python +splinter自动刷新抢票
一年一度的春运又来了,
今年我自己写了个抢票脚本。
python +splinter自动刷新抢票,可以成功抢到(依赖自己的网络环境太厉害,还有机器的好坏),
但是感觉不是很完美,
有大神请指导完善一下(或者有没有别的好点的思路)
不胜感谢
# -*- 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则从上之下依次点击
order = 0
###乘客名
users = [u"xxx",u"xxx"]
##席位
xb = u"二等座"
pz=u"成人票"
"""网址"""
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"循环点击查询... 第 %s 次" % count
# sleep(1)
try:
self.driver.find_by_text(u"预订")[self.order - 1].click()
except Exception as e:
print e
print u"还没开始预订"
continue
else:
while self.driver.url == self.ticket_url:
self.driver.find_by_text(u"查询").click()
count += 1
print u"循环点击查询... 第 %s 次" % count
# sleep(0.8)
try:
for i in self.driver.find_by_text(u"预订"):
i.click()
sleep(1)
except Exception as e:
print e
print u"还没开始预订 %s" %count
continue
print u"开始预订..."
# 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"确认选座..."
self.driver.find_by_id('qr_submit_id').click()
except Exception as e:
print e
if __name__ == '__main__':
huoche=huoche()
huoche.start()
Python学习交流群:834179111,群里有很多的学习资料。欢迎欢迎各位前来交流学习。
欢迎小伙伴入群,加我好友,发你学习资料
fill splinter 延迟_学习python +splinter自动刷新抢票相关推荐
- python +splinter自动刷新抢票
一年一度的春运又来了, 今年我自己写了个抢票脚本. python +splinter自动刷新抢票,可以成功抢到(依赖自己的网络环境太厉害,还有机器的好坏), 但是感觉不是很完美, 有大神请指导完善一下 ...
- Python+Splinter实现简单12306自动刷新抢票
实现该功能(window)环境: 1.python环境的搭建和安装:(测试版本是python 3.+) 2.Splinter web测试工具: 第一:python,下载地址:https://www.p ...
- 用Python自动刷新抢12306火车票(附源码)
專 欄 ❈ 作者:marvin,互联网从业者,现居上海张江 ❈ 一年一度的春运又来了,今年我自己写了个抢票脚本.使用Python+Splinter自动刷新抢票,可以成功抢到.(依赖自己的网络环境太厉害 ...
- python忠告_学习Python一段时间,老司机给上路新手的3点忠告!
在你学习编程的过程中,是否有过以下经历,或正在面临类似的局面:网上找了很多资料,不知道从哪里看起 买了本书,过了很久也没有看完第一章 开始还能跟着写几行代码,后来突然就看不懂了 也看了些教程和视频,似 ...
- python编程实践(3):python+selenium实现12306抢票脚本
又到了一年一度的春运时节,抢个票? 1.设计思路 如果我们要买一张火车票,我们会怎么做?打开12306,登陆,输入出发地和目的地,选择出行日期,然后点击查询,有余票的话就下单购买,没有票就点刷新或者等 ...
- python编写12306窗体抢票软件(一)
python编写12306窗体抢票软件(一) 第一次写博客,拿写过的软件练个手~ 12306是学习爬虫的比较好的一个练手网站.本文带你重零开始编写一个python窗体,十分简单,小白进来看哈~这节只说 ...
- python+selenium实现12306抢票
python+selenium实现12306抢票 一.准备工作 1.要先下载相关的包,selenium.interval.最好使用国内清华源 pip install (which package) - ...
- python编写12306窗体抢票软件(二)
python编写12306窗体抢票软件(二) 本文这次介绍如何获取12306网站的验证码并登陆. 1 获取验证码 12306它是一个服务器,每次我们访问它都是以客户端的方式去向它索取信息. 建议用谷歌 ...
- python 股票自动交易助手_学习 Python 看这一篇就够了!
2019.08.05 「Python 技术」公众号发出了第一篇文章,时至今日,已经快一年了.期间我们累积发文 260+ 篇,52 周除去周末我们基本做到了日更,这一路走来磕磕碰碰有太多的不容易,会有为 ...
最新文章
- PL/SQL Developer的调试存储过程
- 两种获取connectionString的方式
- 【 FPGA/IC 】addsub 的实现
- ngnix服务器搭建
- ACM中Java输入输出
- C语言 读取txt文档按行读取到新的txt文档
- 【CodeForces - 1051B】Relatively Prime Pairs (构造,思维,素数,水题)
- 复制文本框内容至剪贴板
- 【福利赠书】命题专家点评中国研究生数学建模之现状
- JavaScript的数据结构与算法(三) —— 单向链表
- Maven--部署构件至 Nexus
- PCL之估计点云子集的表面法线
- SpringMVC_1
- 蓝牙AVRCP协议分析
- [五]基础数据类型之Short详解
- 向来有些神秘的ThoughtWorks,突然之间要被Roy卖掉的原因竟然是……
- java上传微博图床,GitHub - echisan/wbp4j: Simple Java Api for 微博图床,使用简单的api即可完成上传图片...
- ICV:中国智能驾驶领跑全球,2026年L2级汽车销量将占全球44%
- 工业互联网的数据集成
- 乐视2能刷原生android,乐视2高通版(S2) 魔趣OS 安卓9 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
热门文章
- 如果你一生碌碌无为是因为努力不够?
- 【小教程】Ubuntu gdown下载Google Drive文件
- 麓言信息ui设计不会画画可以学吗?
- log4j layout ConversionPattern符号说明
- 网络抓包方式复现Tomcat- AJP协议文件读取/命令执行漏洞(CVE-2020-1938 / CNVD-2020-10487)
- eclipse 导入工程中文出现�问号乱码(默认UTF-8也没用)
- Linux初学者成为高手的学习步骤和建议【新人必看】
- 神经网络特征图可视化
- zetane神经网络可视化
- 2022 Cloud Native Computing代表厂商 | 灵雀云第三次入选Gartner中国ICT技术成熟度曲线报告