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 ...
随机推荐
- spring-boot学习笔记之Conditional
今天看了@Conditional,自己根据以下文章练了下,根据自己的理解操作的 转载出处:http://wiselyman.iteye.com/blog/2213054 17. ...
- 【java】文件操作java.io.File
package 文件操作; import java.io.File; import java.io.IOException; public class TestFile { public static ...
- 来腾讯云开发者实验室 学习.NET
腾讯云开发者实验室为开发者提供了一个零门槛的在线实验平台,开发者实验室提供的能力: 零门槛扫码即可免费领取实验机器,支持使用自有机器参与,实验完成后支持保留实验成果: 在线 WEB IDE 支持 sh ...
- express整合webpack的打包文件dist
对于我来说,第一次接触前后端整合问题的小白,刚开始是一脸懵逼,这个问题整整坑了我一个晚上加一个早上,现在写出来总结: 前端开发:vue-cli+webpack: 后台开发:nodejs框架expres ...
- python:发送消息给微信企业号
# -*- coding:utf-8 -*- import requests import json ''' 基础环境:微信企业号 version:python 2.7 ''' class Send_ ...
- 【Tomcat】重新打war包
Extract war in tomcat/webapps #!/bin/bash #----------------------------------------------- # FileNam ...
- 安装MySQL时提示3306端口已被占用的解决方案
之前安装过mysql,用的好好的,但是今天开启服务时报异常,无法启动.为省事,于是想到卸载重装,安装过程中发现3306已经被占用,这也是一开始服务无法启动的原因. 看到有人说用fport查看端口号,于 ...
- 通过js添加的元素点击事件无法触发
var blk_have ='<div class="sw-off"></div>'; $('#blk').prepend(blk_have); $(doc ...
- Ruby学习之对象模型
这两周工作内容较多,平时自己也有点不在状态,学的东西有点少了,趁着现在还有点状态,赶紧复习一下之前学习的Ruby吧. Ruby是我真正开始接触动态语言魅力的第一个语言,之前虽然也用过且一直用perl. ...
- socket对象放在一个datagridview的row的tag里面在拿出来 为什么是已释放
socket对象放在一个datagridview的row的tag里面在拿出来 为什么是已释放