本文将介绍如何用 Python 语言实现 12306 自动预定列车票,也就是坊间常说的“抢票”,但个人觉得,这不算是“抢”,只不过是一定程度的自动化。

总体设计

所谓抢票软件,本质上就是基于浏览器驱动,实现登录、预定、确认信息的自动化。购买列车票涉及4个网页,相应的基本流程如下:

  1. 登录:输入用户名、密码,识别验证码,点击“登录”;
  2. 基本信息填写:出发地,目的地,出发日期,车票类型(普通或学生),车次类型选择,点击“查询”,如果目标车次尚有余票则点击“预定”,否则再次点击查询……;
  3. 订单信息填写:乘车人选择,席别选择,票种选择,点击“提交订单”;
  4. 订单确认:选择座位位置,点击“确认”。

详细设计

总体设计理清了抢票的主要步骤,进一步需要明确每个步骤中需要注意的问题。

1. 登录

登录过程中,自动输入用户名和密码比较简单,难点在于识别验证码。截至目前,各种自动识别验证码的方案准确率都不高,因此,本文采用“人工辅助

第13课:实战之用 Python 写一个抢票软件相关推荐

  1. 收藏!用 Python 写一个抢票软件

    本文介绍的是如何用 Python 语言实现 12306 自动预定列车票,也就是坊间常说的"抢票",但个人觉得,这不算是"抢",只不过是一定程度的自动化. 总体设 ...

  2. 用python写一个抢票脚本

    写一个抢票脚本需要了解一些网络爬虫的知识,以及如何使用 Python 进行网络请求. 首先,你需要找到票务网站的 API,并了解其请求方式.请求参数等信息.然后,你可以使用 Python 的第三方库如 ...

  3. python抢票软件代码_Python 写一个抢票软件

    总体设计 所谓抢票软件,本质上就是基于浏览器驱动,实现登录.预定.确认信息的自动化.购买列车票涉及4个网页,相应的基本流程如下: 登录:输入用户名.密码,识别验证码,点击"登录": ...

  4. python软件界面-用Python写一个语音播放软件

    原标题:用Python写一个语音播放软件 单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的 ...

  5. python编写一个软件-python写一个随机点名软件的实例

    最近有个随机点名软件的需求,故写了一个,上代码:github地址 # -*- coding: utf-8 -*- # @Time : 18-12-31 下午4:21 # @Author : Felix ...

  6. python写软件实例-python写一个随机点名软件的实例

    最近有个随机点名软件的需求,故写了一个,上代码:github地址 # -*- coding: utf-8 -*- # @Time : 18-12-31 下午4:21 # @Author : Felix ...

  7. python语音播报-用Python写一个语音播放软件

    单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的故障,容易给工作带来被动.学Python这 ...

  8. python读音播报-用Python写一个语音播放软件

    单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的故障,容易给工作带来被动.学Python这 ...

  9. 用python写一个程序控制其它软件_程序员:利用Python实现可控制肉鸡的反向Shell...

    一.初识 1.1 用 Python 实现一个可以管理多个肉鸡的反向 Shell,为什么叫反向 Shell 呢?反向就是肉鸡作为 Client 主动连接到我们的 Server 端,以实现对多个远程主机的 ...

最新文章

  1. 京瓷1020MFC显示J-05 11是什么意思_Gofair第11讲,细说谷歌系推广的产品优势和推广方式...
  2. java线程锁的作用,大厂面经合集
  3. 补码为什么要取反加1?
  4. android progressbar icon,android中ProgressDialog与ProgressBar的使用详解
  5. bzoj2287【POJ Challenge】消失之物 缺一01背包
  6. Flume+HBase+Kafka集成与开发
  7. webpack4 es6转换
  8. 哈尔滨现大雾天气 高速封闭航班推迟起飞
  9. 分享一个列表查询查看多选基础资料的解决方案
  10. Eclipse alt+/语法不提示的解决方法
  11. 编译opencv错误解决:libavcodec.a(hevc_cabac.o): `ff_h264_cabac_tables' can not be used
  12. Atitit java文件监控 WatchService 的使用 目录 1. // 处理下级多层目录 1 2. // 处理新目录 1 3. Code 2 常见问题对于 1.// 处理下级多层目
  13. 由于项目需要 接触使用特别好 亲测使用 GoEasy小程序即时通讯源码是一个基于GoEasy提供的websocket通讯服务,实现的小程序即时通讯,
  14. AgentWeb url监听问题
  15. C语言:判断一个三位数是否为水仙花数
  16. 10度角的三角函数计算
  17. C++ TCP 网络编程与数据通信
  18. 计算机二级c语言2019年3月,2019年3月计算机二级
  19. android 正则句子按照标点符号断句,正则Pattern;
  20. Spring bean的生命周期init和destory

热门文章

  1. 银联无跳转支付流程(银联侧开通)
  2. A load persistent id instruction was encountered, but no persistent_load function was specified.
  3. windows安装paddlepaddle踩坑教程
  4. java实验2总结心得,java实验的心得体会
  5. 计算机硬盘写入错误怎么办,永劫无间磁盘写入错误怎么办 磁盘写入错误解决办法...
  6. 软件磁盘阵列(Software RAID)介绍
  7. win10装sql2000卡在选择配置_Win10系统安装Sql Server 2000可能会碰到的问题【解决方法】...
  8. 前端实现三角形的四种方法
  9. Unity官方案例噩梦射手开发总结<一> 角色的攻击功能实现
  10. 深度学习必备三种基本绘图技能