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 周除去周末我们基本做到了日更,这一路走来磕磕碰碰有太多的不容易,会有为 ...
最新文章
- javascript中not defined、undefined、null以及NaN的区别
- free malloc
- JAVA入门级教学之(方法-调用-5)
- VS 解决方案平台和解决方案配置
- java 分布式事务处理
- java 输入框_Java文本框和文本区的输入输出
- recyclerview放不同的布局_RecyclerView系列之(2):为RecyclerView添加分隔线
- Spark运行WordCount例子
- 将一个大写英文字母转换为小写输出 (12 分) - PTA
- PyTorch实现TPU版本CNN模型
- 掌财社寒山:彼得林奇最珍贵的股市投资理念
- piranha(注意iptables和selinux的问题)
- android开发之高仿中国建设银行App
- kali工具熟悉——情报分析
- 螺栓扭矩查找表excel下载
- Git原理杂谈之pull/push命令
- 流程控制语句break continu return 及方法(函数)
- 银行家舍入法(四舍六入)
- 【术语篇】影响PV的因素有哪些
- 抓取服务器作业文档不存在,易飞ERP问题解答.doc
热门文章
- java中数学的头文件_计算机编程 - 数字(Numbers)
- JS async 函数
- 小白如何快速写一篇高质量SEO文章
- qq无法启动此程序计算机中丢失dll,电脑打开QQ提示丢失DLL文件死机怎么处理
- 六大银行结算账户的区别
- matlab/simulink汽车带可变阻尼的半主动悬架系统模型
- java jaxb 注解_JAXB注解
- [NOIP2011]数字反转
- HashMap evict 放逐之旅
- 山东大学教授计算机学院郭雷,中国科学院院士郭雷校友做客山东大学育贤校友讲坛...