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 ...
随机推荐
- 《从Paxos到Zookeeper:分布式一致性原理与实践》【PDF】下载
内容简介 Paxos到Zookeeper分布式一致性原理与实践从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议. ...
- jar包后台启动--nohup篇
直接java -jar TestHttps-0.0.1-SNAPSHOT.jar的话是前段启动,但是窗口关闭之类的程序也就关闭了 我们可以nohup java -jar TestHttps-0.0.1 ...
- 记一次生产环境Nginx日志骤增的问题排查过程
摘要:众所周知,Nginx是目前最流行的Web Server之一,也广泛应用于负载均衡.反向代理等服务,但使用过程中可能因为对Nginx工作原理.变量含义理解错误,或是参数配置不当导致Nginx工作异 ...
- 【NOIP模拟】cut
Description F大爷热爱切树.今天他找到一棵黑白树,不到两秒钟,F大爷就把这棵树切掉了.已知原先树上共n个点,每个点都是黑点或者白点,F大爷切去若干条边后,分成的若干个连通子树中每块恰有一个 ...
- Mybatis-----优化配置文件,基于注解CR
这篇主要写配置文件的优化,例如 jdbc.properties 配置文件 ,引入数据库的文件,例如driver,url,username,password 等,然后在 SqlMapConfig.x ...
- Java I/O---类体系总结
1.Java I/O常用 (1)File 对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹. (2)FileInputStream 从文件系统中的某个文件中获得输入字节: ...
- ArcGIS API for Javascript 加载天地图(墨卡托投影)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Windows 刷新DNS缓存
释放IP配置信息 ipconfig /release 刷新DNS ipconfig /flushdns 更新网卡适配器 ipconfig /renew
- jmeter中一次运行多条sql语句
操作比较简单,主要就分两步: 第一步:在JDBC Connection Configuration中设置,主要见下图标注部分增加:?allowMultiQueries=true 第二步:在JDBC R ...
- 使用Word进行文档修订版本的比较
项目经理在实际的工作过程中,比如要写文档方案,就需要对文档的修订版本进行管理和控制.在以前的工作中,笔者使用的是UltraEdit这个软件工具中的Ultra Compare这个子工具来进行的文档版本的 ...