python模拟火车订票系统代码_100行Python代码实现自动抢火车票
今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool。
先准备好:
12306网站用户名和密码
chrome浏览器及下载chromedriver
下载Python代码
代码用的Python+Splinter开发,Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互。Splinter执行的时候会自动打开你指定的浏览器,访问指定的URL。然后你所开发的模拟的任何行为,都会自动完成,你只需要坐在电脑面前,像看电影一样看着屏幕上各种动作自动完成然后收集结果即可。
了解原理:
找到相应URL,找到控件模拟登录、查询、订票操作。关键是找到控件名称,难点是起始地不是直接输入的页面值,需要在cookie中查出。
Python代码打开URL,找到控件填充值:
def login(self):
self.driver.visit(self.login_url)
# 填充用户名
self.driver.fill("loginUserDTO.user_name", self.username)
# 填充密码
self.driver.fill("userDTO.password", self.passwd)
print u"等待验证码,自行输入..."
找到用户名密码控件名
找到起始地控件名
确定起始地的值,方法Chrome浏览器中的“检查”功能(按F12),Network ---> Cookies中找到:
cookie中起始地的值
拷贝起始地的cookie值,我把几个常用的城市拷出来,放到了字典中:
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'}
查询车票代码:
print u"购票页面开始..."
# 加载查询信息
self.driver.cookies.add({"_jc_save_fromStation": self.starts})
self.driver.cookies.add({"_jc_save_toStation": self.ends})
self.driver.cookies.add({"_jc_save_fromDate": self.dtime})
self.driver.find_by_text(u"查询").click()
其实,你只需要运行代码:
python tickets.py 上海 广州 2018-02-05
当然,还需要手动点一下的还是万恶的12306验证码,抢到票后确认支付就行啦。
抢票进行中
抢票成功!
python模拟火车订票系统代码_100行Python代码实现自动抢火车票相关推荐
- python模拟火车订票系统_如何用python编写火车抢票助手
前几天跟朋友说打算写一个抢票助手,最后由于某些原因念头打消了. 可就在昨天晚上,才隐约记起一年前的自己曾经说过:一年后我一定要写一个12306的抢票助手!瞬间激情澎湃,甚至已经是快临近凌晨时便开始动工 ...
- python模拟火车订票系统代码_Python3.6实现12306火车票自动抢票,附源码
原标题:Python3.6实现12306火车票自动抢票,附源码 Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已 ...
- 利用python模拟火车订票系统
title = ['车次 ','出发站-到达站 ','出发时间 ','到达时间 ','历时 '] num = ['T40','T298','Z158','Z62'] place = ['长春-北京', ...
- 【Python】【项目模拟】模拟火车订票系统
本项目代码基于python大作业--列车管理系统_丿灬慕容笑笑的博客-CSDN博客_python 车票管理系统 的代码,本人对其进行重新加工及充实.项目总体仍较为粗糙,后面还需继续完善. 部分项目界面 ...
- 模拟火车订票系统(Python)
模拟火车订票系统,效果显示,输入购买的车次,乘车人,判断车次是否存在,及其行程信息.如下效果图: 程序如下: 输出结果: 总结:难点在于1.使用自建函数判断车次是否存在 2.字符串format方法的使 ...
- 实战二、模拟火车订票系统
实战二.模拟火车订票系统 详细编程要求如下: 应用到的知识点 1)访问列表元素: print(listname[n]) 2)通过键值访问字典: print(dictionary["键值&qu ...
- python 模拟飞机订票系统
本文包括以下内容 模拟订票系统的各个模块说明 运行截图 可能出现的Bug 解决方案 模拟订票系统需要有以下几个部分组成 一.添加飞机信息 二.删除飞机信息 三.航班信息查询 四.航班信息显示 五.修改 ...
- python票务系统_python基础学习:模拟火车订票系统
2020-12-20 str1 = ["车次", "出发站-到达站", "出发时间", "到达时间", "历时 ...
- spring boot火车订票系统 毕业设计源码031012
火车订票系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题. ...
- 火车时刻表C语言报告,终稿火车订票系统的设计与实现课程设计.doc最终版(范文1)...
<火车订票系统的设计与实现课程设计.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)火车订票系统的设计与实现课程设计.doc(最终版)>相关文档资源请在帮帮文库(www ...
最新文章
- 使用sqlserver来存放和取得session
- 腾讯云 视频 点播 视频上传接口
- html基础知识点列表
- 生效linux内核,Linux内核
- 肉体之爱的解释圣经_可以解释的AI简介,以及我们为什么需要它
- expdp导出 schema_Oracle使用数据泵在异机之间导出导入多个 schema
- Linux操作系统基础解析之(四)——Linux基本命令剖析(2)
- java 定义接口school_Java接口介绍
- leetCode:35. 搜索插入位置
- Python学习资源收集
- 游戏必备组件_没有网络也可以肝的单机小游戏!玩一局就停不下来
- php 结巴分词,将开源PHP组件注册为服务提供者,以结巴分词为例
- IP 网络实验(模拟+设备)(IP网络)
- 微信群总是有人发广告?我用Python写个机器人消灭他!
- android 坐标度分秒转换工具,百度地图API详解之坐标系转换
- 我的大三,青山隐隐,绿水悠悠
- 哇塞!集齐7张卡片,真的可以召唤神龙耶!
- Java 遍历 Redis Hash key中所有数据
- 淘宝SQA工作随写 [ 光影人像 东海陈光剑 的博客 ]
- 【frp】使用 frp 实现内网穿透(CentOS 云服务器 + Win10)
热门文章
- (转)2017中国互联网证券年度报告
- Julia: Dates =DateFormat, format,parse.......
- SQLite的查询优化
- 机器学习笔记(十四):主成分分析法(PCA)(2)
- Kafka从上手到实践-Kafka集群:重要配置和性能探讨 | 凌云时刻
- 计算机网络基础大学教材,计算机网络基础(高等院校信息技术应用型规划教材)...
- java tsp问题_蚁群算法(Java)tsp问题
- 毕设题目:Matlab优化布局
- 【优化预测】基于matlab布谷鸟搜索算法优化SVM预测【含Matlab源码 1525期】
- 【心音信号】基于matlab GUI心音诊断系统【含Matlab源码 762期】