12306 Tickets自动化购票软件操作说明与获取

12306 Tickets version1.0 使用指南

序号特别说明
1本软件不具备抢票功能!!!
2本软件只作为自动化工具,减少手动操作的繁琐!!
3部分功能还需要完善,但由于当前事情较忙,
更新版本会相对较慢,开发队伍:@一直憨憨一直爽!
@哈哈哈哈哈 @kgiu @GanAH @嗷呜不是喵呜!【都什么鬼昵称…】
4核心代码参照GitHub大神的代码,经过简单修改,
加上GUI界面而得,参考代码地址:本项目开源地址:–>
5注意:当前仅支持Chrome浏览器,且仅支持chrome.78 及以上版本,若没有请在获取时选择相应的打包版本(chrome文件夹下)或是自行下载安装。

一. 功能说明

  1. 实现12306自动化订票任务;
  2. 可进行多人订票任务;
  3. 采用Chrome浏览器插件执行,非脚本直接爬取进行post提交,相对安全;
  4. 所有数据均不会保存,亦不会上传到云端,运行如有防火墙警告,为正常现象,确认使用即可,不会危害电脑安全,也不会窃取个人信息,可参见源代码。

视频效果展示:

二. 界面展示,安装说明及基本操作

操作界面如下:
在这里插入图片描述

信息填写区域如下图,cookies的填写请往下查看:
在这里插入图片描述

对于乘员信息,查看12306官网,如下图,比如:王大法,如果为学生,填写格式为王大法(学生),注意为英文的括号:

在这里插入图片描述

实际测试效果视频

12306Tickets软件测试自动订火车票【非抢票】


注:由于测试时段为当天的23:00以后,12306不允许订票,故无订票信息。
为了查看效果,可前往哔哩哔哩观看高清测试视频: 传送门

三. 特别操作及说明

(一). 关于cookies值的获取方式:

方法一(推荐) 复制如下代码:

在这里插入图片描述

None

方法二 (需要熟悉HTML的格式及网站源代码)Chrome

  1. 定位到订票界面:

在这里插入图片描述

  1. 点击F12,弹出如下窗口:

在这里插入图片描述

  1. 接下来的操作步骤如下图中标识:

在这里插入图片描述

  1. jc_save_fromstation的Value填入始发站cookies,jc_save_tostation填入终点站cookies,此时可以顺便计下需要指定列车对应的从上到下的序号,或是不指定由软件自动选择。

(二). 关于邮件通知系统的登录授权码获取

目前仅支持QQ邮箱系统,后续将会添加网易163系统。

特别说明:添加邮箱不需要邮箱的账户密码,只需授权码即可,保护邮箱安全!

具体获取授权码方法:

登录网页版QQ邮箱,找到:设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,生成授权码,填入即可。

在这里插入图片描述

(三). 关于Chrome版本信息查看问题

  1. 打开chrome,找到右上角并执行图示操作:

在这里插入图片描述

  1. 打开即可看到当前的Chrome版本信息,软件当前支持78.0以上版本。

在这里插入图片描述

四. 新版本更新及发布获取渠道

渠道一微信公众号:点击
渠道二GitHub仓库:点击

微信公众号后台回复:Ticket即可,此时会返回几个下载链接,自行选择便好。

五. 当前版本特性

  1. 可订票时间限制到2月29日;
  2. 采用浏览器插件实现模拟操作;
  3. 可进行邮箱通知;
  4. 座位选择;
  5. 多人同时选座(12306账户下需要有该乘员的信息)。

六. 预期新版本特性(不定时更新,大概)

  1. 耗时监测,完善监测信息,定位错误源,确保软件稳定性;
  2. 定时订票(自动识别验证码,当前未完成,需手动点击),邮件通知;
  3. 界面美化(任务逻辑完成后);
  4. 防反爬;
  5. 多线程监测与订票;
  6. PC端迁移到移动端,实现云端挂载订票(可能);
    件稳定性;
  7. 定时订票(自动识别验证码,当前未完成,需手动点击),邮件通知;
  8. 界面美化(任务逻辑完成后);
  9. 防反爬;
  10. 多线程监测与订票;
  11. PC端迁移到移动端,实现云端挂载订票(可能);
  12. …(肯定还有,但没想好——)

七. 微信公众号【合作】
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Appium+Python 自动化抢票代码示例: ```python # 导入必要的库 from appium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 创建 Appium 驱动 desired_caps = { 'platformName': 'Android', 'deviceName': 'Android Emulator', 'appPackage': 'com.example.ticketapp', 'appActivity': 'MainActivity' } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 等待首页加载完成 wait = WebDriverWait(driver, 10) wait.until(EC.presence_of_element_located((By.ID, 'com.example.ticketapp:id/home_button'))) # 点击抢票按钮 grab_btn = driver.find_element_by_id('com.example.ticketapp:id/grab_button') grab_btn.click() # 等待抢票页面加载完成 wait.until(EC.presence_of_element_located((By.ID, 'com.example.ticketapp:id/ticket_list'))) # 找到需要抢的票并点击购买 ticket_list = driver.find_element_by_id('com.example.ticketapp:id/ticket_list') tickets = ticket_list.find_elements_by_class_name('ticket') for ticket in tickets: if ticket.find_element_by_class_name('ticket_name').text == '北京到上海': ticket.find_element_by_class_name('buy_button').click() break # 等待购票页面加载完成 wait.until(EC.presence_of_element_located((By.ID, 'com.example.ticketapp:id/confirm_button'))) # 填写购票信息并确认购买 name_input = driver.find_element_by_id('com.example.ticketapp:id/name_input') name_input.send_keys('张三') id_input = driver.find_element_by_id('com.example.ticketapp:id/id_input') id_input.send_keys('123456789012345678') confirm_btn = driver.find_element_by_id('com.example.ticketapp:id/confirm_button') confirm_btn.click() # 关闭驱动 driver.quit() ``` 这里假设抢票 APP 的首页有一个 “抢票” 按钮,抢票页面有一个票列表,每个票包含一个名称和一个购买按钮。购票页面有一个姓名输入框、一个身份证输入框和一个确认购买按钮。这个示例代码会找到名为 “北京到上海” 的票并购买,填写姓名和身份证后确认购买。需要根据实际情况修改相应的元素 ID 和属性名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值