python抢火车票的脚本
因:
想着那么多人,抢不到火车票。感觉到一丝感慨
所以有了抢火车票这个脚本。

0x01
思路:自动打开浏览器,自动输入账号密码
知道查看。自动预定。
0x02
要用到的模块
splinter模块:
pip install splinter
chrome驱动:
下载地址:http://chromedriver.storage.googleapis.com/index.html
查看自己的版本点开设置->点开关于Google chrome
版本对应:
chromedriver版本 支持的Chrome版本
v2.35 v62-64
v2.34 v61-63
v2.33 v60-62
v2.32 v59-61
v2.31 v58-60
v2.30 v58-60
v2.29 v56-58
v2.28 v55-57
v2.27 v54-56
v2.26 v53-55
v2.25 v53-55
v2.24 v52-54
v2.23 v51-53
v2.22 v49-52
v2.21 v46-50
v2.20 v43-48
v2.19 v43-47
v2.18 v43-46
v2.17 v42-43
v2.13 v42-45
v2.15 v40-43
v2.14 v39-42
v2.13 v38-41
v2.12 v36-40
v2.11 v36-40
v2.10 v33-36
v2.9 v31-34
v2.8 v30-33
v2.7 v30-33
v2.6 v29-32
v2.5 v29-32
v2.4 v29-32


将下载好的chrome驱动解随便解压到一个文件夹,然后添加进系统环境的path变量:

0x03
介绍splinter模块的用法
http://www.jb51.net/article/75992.htm
自己做的笔记:

0x04
代码分析
from splinter.browser import Browser
import time
b=Browser(driver_name="chrome")
b.visit("https://kyfw.12306.cn/otn/leftTicket/init")#浏览器打开12306的页面
bsd=b.find_by_id("login_user")#选择login的id
bsd.click()#点击
b.fill("loginUserDTO.user_name","自己的12306账号")#填写自己的username
b.fill("userDTO.password","自己12306的密码")#填写自己的password
print('[!]手动确认验证码')#验证码自己选择
time.sleep(10)#选择好验证码之后的10秒
b.find_by_id("loginSub").click()#自动点击登录按钮
time.sleep(3)#登录后等待三秒
b.visit("https://kyfw.12306.cn/otn/leftTicket/init")#打开12306的查询页面
b.cookies.add({"_jc_save_fromStation":"%u5E7F%u5DDE%2CGZQ"})#设置好出发点 我选择的是广东
b.cookies.add({"_jc_save_fromDate":"2018-1-23"})#日期
b.cookies.add({u'_jc_save_toStation':"%u6B66%u6C49%2CWHN"})#目的地 我选择的是武汉
b.cookies.all()
b.reload()
b.find_by_text(u"查询").click()#找到查询按钮并点击他
b.find_by_text(u"预订")[1].click()#找到第二班车点击预定按钮
time.sleep(5)#进去后等待5秒,勾选好乘坐人
b.find_by_text(u"提交订单").click()#点击提交订单
time.sleep(3)#等待3秒
b.find_by_text(u"确认").click()#点击确认按钮
常用的几个城市:
cities= {'成都':'%u6210%u90FD%2CCDW',
'重庆':'%u91CD%u5E86%2CCQW',
'北京':'%u5317%u4EAC%2CBJP',
'广州':'%u5E7F%u5DDE%2CGZQ',
'杭州':'%u676D%u5DDE%2CHZH',
'宜昌':'%u5B9C%u660C%2CYCN',
'郑州':'%u90D1%u5DDE%2CZZF',
'深圳':'%u6DF1%u5733%2CSZQ',
'西安':'%u897F%u5B89%2CXAY',
'大连':'%u5927%u8FDE%2CDLT',
'武汉':'%u6B66%u6C49%2CWHN',
'上海':'%u4E0A%u6D77%2CSHH',
'南京':'%u5357%u4EAC%2CNJH',
'合肥':'%u5408%u80A5%2CHFH'}
要想知道更多请看文章:
作者:然学科技
链接:https://www.jianshu.com/p/a16b0b258c3b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
几个号的抢火车票文章:
脚本之家:http://www.jb51.net/article/75992.htm
简书:https://www.jianshu.com/p/a16b0b258c3b
抢票运行视频:加入qpython群观看:540717901
百度云视频:链接:https://pan.baidu.com/s/1smpRTOL 密码:gowj
python抢火车票的脚本的更多相关文章
- python抢火车票 短信通知
# -*- coding: utf-8 -*- from splinter.browser import Browser from time import sleep import traceback ...
- Python用上锁和解锁 lock lock.acquire lock.release 模拟抢火车票
Python用上锁和解锁 lock lock.acquire lock.release 模拟抢火车票 import jsonimport timefrom multiprocessing impor ...
- 用Python抢到回家的车票,so easy!
“ 盼望着,盼望着,春节的脚步近了,然而,每年到这个时候,最难的,莫过于一张回家的火车票. 据悉,今年春运期间,全国铁路发送旅客人次同比将增长 8.0%.达到 4.4 亿人次. 2020 年铁 ...
- python 暴力破解密码脚本
python 暴力破解密码脚本 以下,仅为个人测试代码,环境也是测试环境,暴力破解原理都是一样的, 假设要暴力破解登陆网站www.a.com 用户 testUser的密码, 首先,该网站登陆的验证要支 ...
- 一个好用的Python备份mysql的脚本
前几天打算用Python写一个mysql脚本,上Google看了下老外写的,写的挺好的,原地址在http://tecadmin.net/python-script-for-mysql-database ...
- 用Python写的简单脚本更新本地hosts
这两天Google墙得严重,于是就产生了做个一键更新hosts的脚本的想法. 由于正在学习Python,理所当然用Python来写这个脚本了. 接触比较多的就是urllib2这个库,习惯性的impor ...
- 现在都是python 单独开发框架 执行脚本,处理结果,发报告之类的
现在都是python 单独开发框架 执行脚本,处理结果,发报告之类的
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Python 网站后台扫描脚本
Python 网站后台扫描脚本 #!/usr/bin/python #coding=utf-8 import sys import urllib import time url = "ht ...
随机推荐
- JavaScript基础5——关于ECMAscript的函数
ECMAScript的函数概述(一般定义到<head>标签之间) (1)定义函数,JavaScript一般有三种定义函数方法: *第一种是使用function语句定义函数(静态方法) fu ...
- Function:光标位置插入文本并且光标移动到最后
//光标位置插入文本 function insertText(obj, str) { if(document.selection) { var sel = document.selection.cre ...
- 【Zookeeper】源码分析之Leader选举(一)
一.前言 分析完了Zookeeper中的网络机制后,接着来分析Zookeeper中一个更为核心的模块,Leader选举. 二.总结框架图 对于Leader选举,其总体框架图如下图所示 说明: 选举的父 ...
- 初识QT
前言:这是写给纯小白看的文章,大神可以自行绕道. QT的优势(摘自360百科): Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, ...
- vue有关小知识
截取链接参数: //截取链接参数 this.id = this.$route.query.id;
- Ajax 的用法
1.什么是 Ajax? Ajax,英文名 Asynchronous JavaScript and XML,也就是异步的 JavaScript 和 XML.它不是一门新的语言,而是一种使用现有标准的新方 ...
- 关于 dos 下 npm 命令的使用
npm install 可以安装模块,后面跟 -g 安装全局的,后面跟包的名字就是安装指定的包 npm uninstall <安装包的名字> 卸载某个包,后面跟 -g 是卸载全局的某个包 ...
- xampp的安装和配置
这几天一直在做一个网站,客户要求要用PHP修改WordPress的themes,目的是交付完成后,客户自己管理方便. 以前从没有涉及过PHP,用的是jsp,但是,既然已经选择接受,就只能让自己去适应客 ...
- Nginx集群之WCF大文件上传及下载(支持6G传输)
目录 1 大概思路... 1 2 Nginx集群之WCF大文件上传及下载... 1 3 BasicHttpBinding相关配置解析... 2 4 编写 ...
- PowerShell 函数
PowerShell 中函数是一系列 PowerShell 语句的组合.当你通过函数的名称调用函数时,函数中的语句会被顺序的执行,就像在命令行中执行它们一样. 从 hello world 开始 fun ...