# -*- coding: utf-8 -*-

from splinter.browser import Browser

from time import sleep

import traceback

#初始化信息

# 用户名,密码

username = u"用户名"

passwd = u"密码"

# cookies值得自己去找

starts = u"杭州,HZH"

ends = u"黄石,HSN"

# 时间格式2016-03-22

dtime = u"2016-03-22"

# 车次,选择第几趟,0则从上之下依次点击

order = 0

###乘客名,如果是自己,则上面有个链接是自己的,会跳转到个人中心,用index[1]

#如果乘客不是自己,则用index[0]

pa = 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"

def login():

#点击登录,从购票页面调到了登录页面

b.find_by_text(u"登录").click()

sleep(3)

#给name为loginUserDTO.user_name附上用户名

#也可以用Id查找的方法b.find_by_id('username').fill(username)

b.fill("loginUserDTO.user_name", username)

sleep(1)

#给name为userDTO.password值

b.fill("userDTO.password", passwd)

sleep(1)

#验证码必须手动输入

print u"等待验证码,自行输入..."

#检测页面是否跳转(用户是否输入了验证码并且提交)

while True:

if b.url != initmy_url:

sleep(1)

else:

break

def huoche():

global b

b = Browser(driver_name="chrome")

#访问12306

b.visit(ticket_url)

#查找带登录的字符串,u是避免中文报错

while b.is_text_present(u"登录"):

sleep(1)

#如果存在调用登录方法

login()

if b.url == initmy_url:

break

#当执行完login方法后,登录成功,继续向下执行

try:

print u"购票页面..."

# 跳回购票页面

b.visit(ticket_url)

# 加载查询信息

b.cookies.add({"_jc_save_fromStation": starts})

b.cookies.add({"_jc_save_toStation": ends})

b.cookies.add({"_jc_save_fromDate": dtime})

b.reload()

sleep(2)

count = 0

# 循环点击预订

#order=0则从第一班车开始全部依次预订

if order != 0:

#如果页面没有跳转到,说明没有抢到票,继续抢票

while b.url == ticket_url:

#点击查询进行刷新

b.find_by_text(u"查询").click()

count +=1

print u"循环点击查询... 第 %s 次" % count

sleep(1)

try:

#点击预订的那班车

b.find_by_text(u"预订")[order - 1].click()

except:

print u"还没开始预订"

continue

else:

while b.url == ticket_url:

b.find_by_text(u"查询").click()

count += 1

print u"循环点击查询... 第 %s 次" % count

sleep(1)

try:

#从第一个开始依次预订

for i in b.find_by_text(u"预订"):

i.click()

except:

print u"还没开始预订"

continue

sleep(1)

#若循环结束了,则选择联系人

b.find_by_text(pa)[0].click()

print u"能做的都做了.....不再对浏览器进行任何操作"

except Exception as e:

print(traceback.print_exc())

if __name__ == "__main__":

huoche()

python制作自动抢票_python自动抢票相关推荐

  1. 用python制作生日蛋糕图片大全_Python 制作微信全家福,你就是朋友圈最亮的仔!...

    原标题:Python 制作微信全家福,你就是朋友圈最亮的仔! 目录:0 引言 1 环境2 代码实现3 后记 0 引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出 ...

  2. python制作英汉词典_python如何制作英文字典

    本文实例为大家分享了python制作英文字典的具体代码,供大家参考,具体内容如下 功能有添加单词,多次添加单词的意思,查询,退出,建立单词文件. keys=[] dic={} def rdic(): ...

  3. python制作自动交易软件下载_python自动量化交易系统

    [实例简介] python实现量化分析,交易系统,自动化运维,动态加载策略 [实例截图] [核心代码] quant └── easyquant-master ├── custom │   ├── fi ...

  4. python制作表格的语句_python根据Excel自动生成创建表sql语句

    1.Excel格式截图 2.配置文件脚本 # coding:utf-8 # 表英文名 table_name = '表英文名' # 表中文名 table_comments = '表中文名' # Exce ...

  5. python自动生成表格_Python自动整理 Excel 表格

    相信有不少朋友日常工作会用到 Excel 处理各式表格文件,更有甚者可能要花大把时间来做繁琐耗时的表格整理工作.最近有朋友问可否编程来减轻表格整理工作量,今儿我们就通过实例来实现 Python 对表格 ...

  6. python自动输入文字_Python自动输入【新手必学】

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:哈喽哈嘿哈 这篇文章是我的第一篇文章,写的不好的地方,请大家多多指教哈,另 ...

  7. python 在软件自己自动输入器_Python自动操作GUI神器PyAutoGUI

    本文共3500余字,预计阅读时间12分钟,本文知乎连接:Python自动操作GUI神器PyAutoGUI,本文同步发布于silaoA的博客和微信公众号平台. 关注学习了解更多的Cygwin.Linux ...

  8. python刷今日头条访问量_Python 自动刷博客浏览量实例代码

    怎么利用python爬取csdn博客访问量例子 如何使用python来爬取自己博客访问量承认吧,小编们都是在深夜里崩溃的俗人.晚安,世界. 博客网站上有访问量这个记录么 如果有就可以抓取网站下来,正则 ...

  9. python自动生成表格_Python自动生成绩效考核表并发送邮件

    相信大家经常在工作中见到一些数据报告,比如周报啊,月报啊,绩效考核表之类的数据表格,这些表格每个月我们都需要发送给固定的人,比如领导,对于这些报告,有的需要手工导入数据,而有的其实都是一些固定数据,所 ...

最新文章

  1. 从数据库到迁移调优,鲲鹏高校行太原站正式启动
  2. android intent-fliter用法
  3. 自学python爬虫要多久-初学Python爬虫要学多久?原来这么快
  4. 语音通话框架_普通话考试得高分的方法
  5. CF802O-April Fools‘ Problem(hard)【wqs二分,优先队列】
  6. spss方差分析_【案例】SPSS统计分析:多因素方差分析
  7. Serverless 实战 —— ​​​​​​​与微服务一脉相承,Serverless适用何种场景?会带来哪些冲击?
  8. 多元函数的极值、微分
  9. 如何在vs2010中使用ConfigurationManager
  10. Nginx 场景应用
  11. [android界面]android中src和background区别——前景与背景
  12. 陕西中医药有计算机系吗,校内制度 - 陕西中医药大学信息化建设管理处
  13. Ubuntu运行中文识别CHINESE
  14. matlab需要什么运行库,运行库是什么?常用软件运行库都有哪些?
  15. 比较6种类型和14种数据可视化工具
  16. 开源:全球软件产业四大发展趋势之一(转)
  17. C++满足条件的数累加
  18. SAP系统和微信集成的系列教程之二:如何通过微信公众号消费API
  19. 离岸换汇_离岸业务便宜吗? 揭露另一个管理神话
  20. 最牛通达信主升浪精准指标 准确率超高 主图 源码

热门文章

  1. 上网速度快的浏览器_2020年浏览器国内市场占有率排行榜
  2. python编程定义圆_Python语言编程系列014——PyQt中自定义圆形指示灯
  3. python心跳的实现_(python)面向对象
  4. 用top方法查看内存消耗的方法
  5. walk-forward test
  6. 没有找到合适的方法来重写_玻璃片价格太高?你可能没有找到合适的供应商
  7. vue pc端 商品轮播图_轮播图高点击商品图
  8. 动画都要用计算机图形学吗,计算机图形学在电影和动画中的应用.pdf
  9. mysql分组取出每组地一条数据_MySQL 分组后取每组前N条数据
  10. 线性表的应用之多项式的表示与相加