Python实现12306自动抢票小程序

项目描述: 本程序通过网络爬虫技术,通过抓包分析出一次购票过程中出现的所有请求,最后通过Python程序一步步实现模拟浏览器进行请求。本程序通过调用云打码平台实现登录时候验证码校验,并能实现不断地监控余票,当抢票成功时候发送邮箱提醒用户。

author = 小朋友
微信 = qq735833020
’’‘12306-自动抢票小程序’’'
关注作者微信公众号,获取代码,了解更多详情,
Python实现12306自动抢票小程序_第1张图片
下面分析一下实现步骤::

一、 登录模块

  1. 登录模块第一步下载验证码到本地
    Python实现12306自动抢票小程序_第2张图片
  2. 登录模块第二步调用云打码平台识别验证码,由于云打码平台返回给我们的结果是序号(如:135),所有我们需要做坐标转换处理,具体调用云打码平台接口大家可以参考云打码平台的开发文档。
    Python实现12306自动抢票小程序_第3张图片
  3. 登录模块第三步校验验证码
    Python实现12306自动抢票小程序_第4张图片
  4. 登录模块第四步验证12306用户账号和密码
    Python实现12306自动抢票小程序_第5张图片

二、 查询列车信息

  1. 获得车次对应secretStr值,因为这个值后面会用到。Python实现12306自动抢票小程序_第6张图片

三、 提交订单

  1. 这是一个请求 Python实现12306自动抢票小程序_第7张图片
  2. 这是第二个请求 ,这个请求获得leftTicketStr,purpose_codes,train_location,globalRepeatSubmitToken,key_check_isChange,这些后面提交表单时候需要用。
    Python实现12306自动抢票小程序_第8张图片
    3.这是第三个请求,这个请求可以获取到乘客的信息。
    Python实现12306自动抢票小程序_第9张图片
    4.这是第四个请求,oldPassengerStr由passenger_name,passenger_id_type_code,self.passenger_id_no组成这些信息在第三个请求中可以获得,passengerTicketStr由seatType,passenger_flag,ticketType,passenger_name, passenger_id_type_code,passenger_id_no, mobile_no组成。
    Python实现12306自动抢票小程序_第10张图片
    5.最后一个请求,这样我们就可以下单成功啦!!!
    Python实现12306自动抢票小程序_第11张图片

四、 发送邮箱提醒

  1. 这里要注意的就是你的发送的邮箱要开通SMTP服务。
    Python实现12306自动抢票小程序_第12张图片

五、 运行效果图

作者写了两个版本下面这个是手动输入验证码和输入乘车信息;另一个版本是云打码平台并配置好我们相关信息,这样我们就可以将程序部署到服务器上一直抢票啦。
Python实现12306自动抢票小程序_第13张图片

最后祝大家:2019年万事如意!!!心想事成!!!

你可能感兴趣的:(Python实现12306自动抢票小程序)