Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

lovecloudssh/12306

Repository files navigation

12306

  • python版本支持

    • 2.7
  • 依赖库

  • 项目使用说明

    • 需要配置邮箱,可以配置可以不配置,配置邮箱的格式在yaml里面可以看到ex
    • 提交订单验证码哪里依赖打码兔,所以如果是订票遇到验证码的时候,没有打码兔是过不了的,不推荐手动,手动太慢
    • 配置yaml文件的时候,需注意空格和遵循yaml语法格式,项目的yaml配置ex:
      • ticket_config.yaml 配置说明
        #station_date:出发日期,格式ex:2018年01月06日
        #station_trains:过滤车次,格式ex:
         # - "G1353"
         # - "G1329"
         # - "G1355"
         # - "G1303"
         # - "G1357"
         # - "G1305"
         # - "G1359"
         # - "G1361"
         # - "G1373"
         # - "G1363"
        #from_station: 始发站
        #to_station: 到达站
        #set_type: 坐席(商务座,二等座,特等座,软卧,硬卧,硬座,无座)
        #is_more_ticket:余票不足是否自动提交
        #select_refresh_interval:抢票刷新间隔时间,1为一秒,0.1为100毫秒,以此类推 如果捡漏推荐为1秒,刷票设置0.01
        #expect_refresh_interval:售票未开始,等待刷新间隔时间,1为一秒,0.1为100毫秒,以此类推
        #ticket_black_list:加入小黑屋的等待时间,默认3 min 小黑屋的功能是上次买票失败,证明此票已无机会,下次刷新看到此票跳过
        #enable_proxy:是否开启代理模式,代理速度比较慢,如果是抢票阶段,不建议开启
        #ticke_peoples: 乘客 ex: "张三"
        #damatu:打码兔账号,用于自动登录和订单自动打码
        #is_aotu_code是否自动打码,如果选择Ture,则调用打码兔打码,默认不使用打码兔
        #is_email: 是否需要邮件通知 ex: True or False 切记,邮箱加完一定到config目录下测试emailConf功能是否正常
        #邮箱配置 列举163
        # email: "xxx@163.com"
        # notice_email_list: "123@qq.com"
        # username: "xxxxx"
        # password: "xxxxx
        # host: "smtp.163.com"
        #邮箱配置 列举qq ,qq设置比较复杂,需要在邮箱--账户--开启smtp服务,取得授权码==邮箱登录密码
        # email: "xxx@qq.com"
        # notice_email_list: "123@qq.com"
        # username: "xxxxx"
        # password: "授权码"
        # host: "smtp.qq.com"
        
  • 项目开始

    • 修改config/ticket_config.yaml文件,按照提示更改自己想要的信息
    • 运行根目录run.py,即可开始
  • 目录对应说明

    • agency - cdn代理
    • config - 项目配置
    • damatuCode - 打码兔接口
    • init - 项目主运行目录
    • myException - 异常
    • myUrllib - urllib库
  • 思路图 image

  • 项目声明:

    • 本软件只供学习交流使用,务作为商业用途,交流群:286271084
    • 能为你抢到一张回家的票,是我最大的心愿
  • 成功log,如果是购票失败的,请带上失败的log给我,我尽力帮你挑,也可加群一起交流,程序只是加速买票的过程,并不一定能买到票

    正在第355次查询 乘车日期: 2018年02月12日 车次G4741,G2365,G1371,G1377,G1329 查询无票 代理设置 无 总耗时429ms
    车次: G4741 始发车站: 上海 终点站: 邵阳 二等座:有
    正在尝试提交订票...
    尝试提交订单...
    出票成功
    排队成功, 当前余票还剩余: 359 张
    正在使用自动识别验证码功能
    验证码通过,正在提交订单
    提交订单成功!
    排队等待时间预计还剩 -12 ms
    排队等待时间预计还剩 -6 ms
    排队等待时间预计还剩 -7 ms
    排队等待时间预计还剩 -4 ms
    排队等待时间预计还剩 -4 ms
    恭喜您订票成功,订单号为:EB52743573, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!
    
  • 2017年5月13日跟新

    • 增加登陆错误判断(密码错误&ip校验)
    • 修改queryOrderWaitTime,校验orderId字段bug,校验msg字段bug,校验messagesbug
    • 修改checkQueueOrder 校验 data 字段的列表推导式bug
    • 增加代理ip方法,目前已可以过滤有用ip
  • 2018年1月7日 号更新

    • 增加自动配置
      #station_date:出发日期,格式ex:2018年01月06日
      #from_station: 始发站
      #to_station: 到达站
      #set_type: 坐席(商务座,二等座,特等座,软卧,硬卧,硬座,无座)
      #is_more_ticket:余票不足是否自动提交
      #select_refresh_interval:刷新间隔时间,1为一秒,0.1为100毫秒,以此类推
      #ticke_peoples: 乘客
      #damatu:打码图账号,用于自动登录
      
    • 优化订票流程
    • 支持自动刷票,自动订票
  • 2018年1月8日 更新

    • 增加小黑屋功能
    • 修复bug若干
    • 增加多账号同时订票功能
    • 增加按照选定车次筛选购买车次
  • 2018年1月9日 更新

    • 增加手动打码,只是登录接口,完全不用担心提交票的效率问题,要挂linux系统的话,还是去注册个打码兔吧
    思路
    1.调用PIL显示图片
    2.图片位置说明,验证码图片中每个图片代表一个下标,依次类推,1,2,3,4,5,6,7,8
    3.控制台输入对应下标,按照英文逗号分开,即可手动完成打码,
    
    • 修改无座和硬座的座位号提交是个字符串的问题
    • 增加校验下单需要验证码功能
    • 增强下单成功判断接口校验
  • 2018年1月10日 更新

    • 优化查票流程
    • 修改二等座的余票数返回为字符串的问题
    • 优化订单查询bug
  • 2018年1月12日更新

    • 优化抢票页面逻辑 -增强代码稳定性
  • 2018年1月13日更新

    • 修改下单验证码功能
    • 优化大量调用user接口导致联系人不能用,理论加快订票速度
    • 增加邮箱功能
    #is_email: 是否需要邮件通知 ex: True or False 切记,邮箱加完一定要到config目录下测试emailConf功能是否正常
    #email: 发送的邮箱地址 ex: 1@qq.com
    #notice_email_list: 被通知人邮箱 ex: 2@qq.com
    #username: 邮箱账号
    #password: 邮箱密码
    #host: 邮箱地址
    
  • 2018年1月14日更新

    • 优化订票流程
    • 优化挂机功能
      • 修改之前程序到11点自动跳出功能,现在修改为到早上7点自动开启刷票
      • 需要开启打码兔代码功能,is_aotu_code 设置为True
    • 增加异常判断
  • 2018年1月15日更新

    • 增加捡漏自动检测是否登录功能,建议捡漏不要刷新太快,2S最好,否则会封IP
    • 优化提交订单有很大记录无限排队的情况,感谢群里的小伙伴提供的思路
    • 修改休眠时间为早上6点

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%

AltStyle によって変換されたページ (->オリジナル) /