QQ群招募中:646258285(招募中,没几个人说话),
需要交流的朋友可以直接加我微信( DntBeliv )或QQ( 1121864253 )

看到文章不错,转载一下,没有测试过


一直很想尝试一下电脑跑脚本,抢票就是一个很好的例子。于是在网上找呀找,终于找到了一个可以运行的12306抢票脚本。虽然因为12306的图片验证而有些阻碍。但我觉得代码跑起来的整体体验非常好。

感谢一位博主提供的代码:https://www.cnblogs.com/lizm166/p/8191305.html

1.Chromedriver 驱动的下载地址如下:
http://chromedriver.storage.googleapis.com/index.html

下载好后将.exe文件放置在C:\Windows\System32 中

2.代码

#python3.xfrom splinter.browser import Browser
from time import sleep
# traceback模块被用来跟踪异常返回信息
import traceback
# 设定用户名、密码
username = u"用户名"
passwd = u"密码"
# 起始站点和乘车时间的cookies值要去找;
# 方法:先登录一下12306,输入地点日期什么的查询一下,然后在chrome浏览器中按F12,出现如下页面,在Application选项里找到相应的值。
# 表格中的cookie值:
#_jc_save_fromeStation的值为出发地
#_jc_save_toSatation的值为目的地
#_jc_save_fromDate 出发日期
#_jc_save_toDate返程日期
# 实例中用的是:北京 到 西安 2018-09-16
from_station = u"%u5317%u4EAC%2CBJP"
to_station = u"%u897F%u5B89%2CXAY"
# 时间格式2018-01-25
from_date = u"2018-09-16"
# 车次,选择第几趟,0则从上之下依次点击
order = 0
# 设定乘客姓名
ticketer = 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():#点击当前页面的"登录"bwr.find_by_text(u"登录").click()sleep(3)#fill填充搜索框的内容,username。name=loginUserDTO.user_name的元素。bwr.fill("loginUserDTO.user_name", username)sleep(1)bwr.fill("userDTO.password", passwd)sleep(1)print(u"等待验证码,自行输入...")#登录手动输入验证码,并登录系统while True:#判断当前的url是否已经进入系统if bwr.url != initmy_url:sleep(1)else:break
# 购票
def getTickt():global bwr# 使用splinter打开chrome浏览器bwr=Browser(driver_name="chrome")# splinter打开浏览器(返回购票页面)bwr.visit(ticket_url)while bwr.is_text_present(u"登录"):sleep(1)login()#判断是否已经进入系统if bwr.url == initmy_url:breaktry:print(u"购票页面...")# splinter打开浏览器(跳回购票页面)bwr.visit(ticket_url)# 加载查询信息bwr.cookies.add({"_jc_save_fromStation": from_station})bwr.cookies.add({"_jc_save_toStation": to_station})bwr.cookies.add({"_jc_save_fromDate": from_date})bwr.reload()sleep(2)count=0# 循环点击预订if order != 0:while bwr.url == ticket_url:bwr.find_by_text(u"查询").click()count += 1print(u"循环点击查询... 第 %s 次" % count)sleep(1)try:bwr.find_by_text(u"预订")[order - 1].click()except:print(u"还没开始预订")continueelse:while bwr.url == ticket_url:bwr.find_by_text(u"查询").click()count += 1print(u"循环点击查询... 第 %s 次" % count)sleep(1)try:for i in bwr.find_by_text(u"预订"):i.click()sleep(1)except:print(u"还没开始预订")continuesleep(1)# 可以通过修改sleep的参数来调整延时, 但延时不要太低, 防止被12306网站认为是刷票屏蔽掉.bwr.find_by_text(ticketer)[0].click()sleep(1)bwr.find_by_text(u"提交订单").click()sleep(1)#bwr.find_by_id(u"qr_submit_id").click()print(u"成功抢到一张宝贵的票")except Exception as e:print(traceback.print_exc())if __name__ == "__main__":getTickt()
· 关注公众号【技术斋】,发现更多精彩!

Python3脚本抢票相关推荐

  1. python3 12306抢票

    这个脚本目前只能刷一趟车的,人数可以是多个,支持选取作为类型等. 实现思路是splinter.browser模拟浏览器登陆和操作,由于12306的验证码不好自动识别,所以,验证码需要用户进行手动识别, ...

  2. 12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(上)

    郑重声明: 本文仅供学习使用,禁止用于非法用途,否则后果自负,如有侵权,烦请告知删除,谢谢合作! 开篇明义 本文针对自主开发的抢票脚本在抢票过程中常常遇到的请求无效等问题,简单分析了 12306 网站 ...

  3. 大麦演唱会为什么总抢不到票?抢票完整教程、详细步骤

    文章目录 1.在浏览器上安装脚本管理器 1.登录网址Tampermonkey • Home 2.选择对应浏览器的版本,并安装. 这里以edge浏览器作为示范​编辑 2.在油猴脚本管理器中搜索脚本 2. ...

  4. python3+selenium实现12306抢票脚本

    文章目录 一. 环境配置 windows环境 mac.linux环境 二. 实现思路及代码 1. 查询票数 2. 登录 关于自动登录 3. 提交订单 4. 邮件提醒 5. 短信提醒 三.总结与分析 一 ...

  5. 12306抢票脚本 python_如何使用Python实现12306抢票?摆脱无票可买的窘境

    前言 十一已经过去一个星期了,下一个假期就是元旦啦,每一次假期购票都得抢到"头破血流",所以小编经历过这次十一之后就在想做一个抢票小助手,经过几天的构思后,终于写了出来. 一.爬虫 ...

  6. 秀动app抢票脚本_程序员硬核quot;Python抢票教程”,帮你抢回家车票

    盼望着,盼望着,春节的脚步近了,然而,每年到这个时候,最难的,莫过于一张回家的火车票. 据悉,今年春运期间,全国铁路发送旅客人次同比将增长8.0%,达到4.4亿人次,2020年铁路春运自1月10日开始 ...

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

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

  8. 想去看演唱却总是抢不到票?教你用Python制作一个自动抢票脚本

    前言 嗨喽!大家好,这里是魔王!! 大麦网,是中国综合类现场娱乐票务营销平台,业务覆盖演唱会. 话剧.音乐剧.体育赛事等领域. 但是因为票数有限,还有黄牛们不能丢了饭碗,所以导致了,很多人都抢不到票 ...

  9. python抢票脚本好用吗_春运到了,带你用python来抢票回家!

    不知不觉,一年一度的春运抢票大幕已经拉开,想快速抢到回家的车票吗?作为程序员,这些技术手段,你一定要知道. 为了让大家更快捷更便利的抢火车票,各种各样的抢票软件应需而生,这类软件大部分都是付费抢票的机 ...

最新文章

  1. 前来推荐一本比较喜欢的读物——《浪潮之巅》
  2. golang new make 区别
  3. 【转】你可能不知道的Shell
  4. html怎么用ui打开,HTML5教程 如何使用原生UI
  5. Bootstrap系列 -- 32. 按钮垂直分组
  6. SSIA的完整形式是什么?
  7. 如何:添加缺少的 ContentPlaceHolder
  8. mysql mgr 三节点_详解MySQL 5.7 MGR单主确定主节点方法
  9. 数理统计-大厂笔试题
  10. 2015年3月29号日报
  11. .net开发微信公众号(3)-接收微信推送的消息
  12. 块级元素水平,垂直居中的两种方式
  13. Yarn 和 NPM 国内快速镜像(淘宝镜像)
  14. 【深扒】深入理解 JavaScript 中的异步编程
  15. matlab图像拼接 设计,MATLAB图像拼接算法及实现.doc
  16. java图书管理系统的简单实现
  17. 【总结】深度学习阶段性总结
  18. 云闪付,每天签到,转账领红包,新用户领取8-2018元红包
  19. ubuntu进程管理方法(转)
  20. css如何定义img的src

热门文章

  1. Codeforces 300D Painting Square dp
  2. XP计算机里改单核,如何将双核CPU改成单核CPU 双核改单核教程
  3. mysql binlog events_使用SHOW binlog events查看binlog内容
  4. 报销差率费与会计借贷理解
  5. 思科VPLS解决方案
  6. constrain用法_constrain是什么意思_constrain的翻译_音标_读音_用法_例句_爱词霸在线词典...
  7. FI--SAP财务系统总账应用技巧
  8. 谷歌浏览器windows以及mac系统下设置跨域
  9. 《SLAM十四讲》7.6 三角测量 triangulation.cpp
  10. 安卓手机能提取当前页面的链接吗_如何获取一个app内的网页地址?