一年一度的春运又来了,

今年我自己写了个抢票脚本。

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自动刷新抢票相关推荐

  1. python +splinter自动刷新抢票

    一年一度的春运又来了, 今年我自己写了个抢票脚本. python +splinter自动刷新抢票,可以成功抢到(依赖自己的网络环境太厉害,还有机器的好坏), 但是感觉不是很完美, 有大神请指导完善一下 ...

  2. Python+Splinter实现简单12306自动刷新抢票

    实现该功能(window)环境: 1.python环境的搭建和安装:(测试版本是python 3.+) 2.Splinter web测试工具: 第一:python,下载地址:https://www.p ...

  3. 用Python自动刷新抢12306火车票(附源码)

    專 欄 ❈ 作者:marvin,互联网从业者,现居上海张江 ❈ 一年一度的春运又来了,今年我自己写了个抢票脚本.使用Python+Splinter自动刷新抢票,可以成功抢到.(依赖自己的网络环境太厉害 ...

  4. python忠告_学习Python一段时间,老司机给上路新手的3点忠告!

    在你学习编程的过程中,是否有过以下经历,或正在面临类似的局面:网上找了很多资料,不知道从哪里看起 买了本书,过了很久也没有看完第一章 开始还能跟着写几行代码,后来突然就看不懂了 也看了些教程和视频,似 ...

  5. python编程实践(3):python+selenium实现12306抢票脚本

    又到了一年一度的春运时节,抢个票? 1.设计思路 如果我们要买一张火车票,我们会怎么做?打开12306,登陆,输入出发地和目的地,选择出行日期,然后点击查询,有余票的话就下单购买,没有票就点刷新或者等 ...

  6. python编写12306窗体抢票软件(一)

    python编写12306窗体抢票软件(一) 第一次写博客,拿写过的软件练个手~ 12306是学习爬虫的比较好的一个练手网站.本文带你重零开始编写一个python窗体,十分简单,小白进来看哈~这节只说 ...

  7. python+selenium实现12306抢票

    python+selenium实现12306抢票 一.准备工作 1.要先下载相关的包,selenium.interval.最好使用国内清华源 pip install (which package) - ...

  8. python编写12306窗体抢票软件(二)

    python编写12306窗体抢票软件(二) 本文这次介绍如何获取12306网站的验证码并登陆. 1 获取验证码 12306它是一个服务器,每次我们访问它都是以客户端的方式去向它索取信息. 建议用谷歌 ...

  9. python 股票自动交易助手_学习 Python 看这一篇就够了!

    2019.08.05 「Python 技术」公众号发出了第一篇文章,时至今日,已经快一年了.期间我们累积发文 260+ 篇,52 周除去周末我们基本做到了日更,这一路走来磕磕碰碰有太多的不容易,会有为 ...

最新文章

  1. PL/SQL Developer的调试存储过程
  2. 两种获取connectionString的方式
  3. 【 FPGA/IC 】addsub 的实现
  4. ngnix服务器搭建
  5. ACM中Java输入输出
  6. C语言 读取txt文档按行读取到新的txt文档
  7. 【CodeForces - 1051B】Relatively Prime Pairs (构造,思维,素数,水题)
  8. 复制文本框内容至剪贴板
  9. 【福利赠书】命题专家点评中国研究生数学建模之现状
  10. JavaScript的数据结构与算法(三) —— 单向链表
  11. Maven--部署构件至 Nexus
  12. PCL之估计点云子集的表面法线
  13. SpringMVC_1
  14. 蓝牙AVRCP协议分析
  15. [五]基础数据类型之Short详解
  16. 向来有些神秘的ThoughtWorks,突然之间要被Roy卖掉的原因竟然是……
  17. java上传微博图床,GitHub - echisan/wbp4j: Simple Java Api for 微博图床,使用简单的api即可完成上传图片...
  18. ICV:中国智能驾驶领跑全球,2026年L2级汽车销量将占全球44%
  19. 工业互联网的数据集成
  20. 乐视2能刷原生android,乐视2高通版(S2) 魔趣OS 安卓9 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...

热门文章

  1. 如果你一生碌碌无为是因为努力不够?
  2. 【小教程】Ubuntu gdown下载Google Drive文件
  3. 麓言信息ui设计不会画画可以学吗?
  4. log4j layout ConversionPattern符号说明
  5. 网络抓包方式复现Tomcat- AJP协议文件读取/命令执行漏洞(CVE-2020-1938 / CNVD-2020-10487)
  6. eclipse 导入工程中文出现�问号乱码(默认UTF-8也没用)
  7. Linux初学者成为高手的学习步骤和建议【新人必看】
  8. 神经网络特征图可视化
  9. zetane神经网络可视化
  10. 2022 Cloud Native Computing代表厂商 | 灵雀云第三次入选Gartner中国ICT技术成熟度曲线报告