2023年12306购票平台自动化购票二|解决车次查找与预定
目录
一、说明
1.1、背景
1.2、说明
二、步骤
2.1、点击去购票
2.2、在搜索框中输入车次信息
2.3、点击查找
2.4、出现车次信息,进行筛选,如果有票则点击计入预定车票界面
三、结果
四、小节
一、说明
1.1、背景
接上文,春运抢不到票,试图通过代码解决这个问题,以下内容是第二部分。
1.2、说明
操作系统:win 10
编辑器:pycharm edu
语言及版本:python 3.10
使用的库:selenium
实现思路:使用selenium模拟人的行为,进行自动化操作
关于代码:完整代码会在第三部分完全实现功能放出
第一部分内容-->已解决登录问题。
浏览器下载与驱动的安装:火狐浏览器下载与驱动安装
第一部分内容链接:第一部分
浏览器闪退说明:大概率是因为下载的浏览器和浏览器驱动版本不一致,建议使用搜索引擎查找大佬分享的内容解决
以下url不会放真实的,拿来测试注意识别并自行更改。
自动化购票流程图功能实现如下图1:
图1
二、步骤
tips:下列的代码都是通过检查页面源代码,进行元素的审查完成的。
2.1、点击去购票
driver.switch_to.window(driver.window_handles[-1])time.sleep(3)# 刷新driver.refresh()time.sleep(3)print(driver.title)print(driver.current_url)# https://kyfw.12306.cn/otn/view/index.html# 在新窗口点击前往订票,又会跳转到新窗口driver.find_element(By.XPATH, '//*[@id="link_for_ticket"]').click()
2.2、在搜索框中输入车次信息
问题:
这里有一个问题,直接在输入框中输入内容要选择系统提示的目的地才能成功,而这个目的地无法审查出来;
解决办法:
先点击输入框,在输入内容,然后在点击另一个输入框,循环反复(经过测试,日期输入框的提示无需理会),即可默认选择系统出现的提示内容。
driver.switch_to.window(driver.window_handles[-1])time.sleep(5)# 出发地driver.find_element(By.XPATH, '//*[@id="fromStationText"]').click()driver.find_element(By.XPATH, '//*[@id="fromStationText"]').send_keys("深圳北", Keys.ENTER)# 目的地time.sleep(1)driver.find_element(By.XPATH, '//*[@id="toStationText"]').click()driver.find_element(By.XPATH, '//*[@id="toStationText"]').send_keys("百色", Keys.ENTER)# 日期,先清除默认内容,在输入driver.find_element(By.XPATH, '//*[@id="train_date"]').click()driver.find_element(By.XPATH, '//*[@id="train_date"]').clear()# time.sleep(1)driver.find_element(By.XPATH, '//*[@id="train_date"]').send_keys("2023-01-18")
2.3、点击查找
time.sleep(2)driver.find_element(By.XPATH, '//*[@id="query_ticket"]').click()
2.4、出现车次信息,进行筛选,如果有票则点击计入预定车票界面
for tr in tr_list: # 遍历所有车次信息time.sleep(1)train_number = tr.find_element(By.CLASS_NAME, "number").text # 车次if train_number in trains: # 如果该车次在输入的车次里left_ticker_td = tr.find_element(By.XPATH, './/td[4]').textif left_ticker_td == '有' or left_ticker_td.isdigit(): # 如果该车次有票print(train_number+'有票')btn72 = tr.find_element(By.CLASS_NAME, 'btn72') # 找到该车次的预订按钮btn72.click()
三、结果
3.1、代码运行最终结果
如下图2:
图2
四、小节
本部分是第二部分,完成了从登陆界面进入车次查找,并进行车次的筛选,还剩下确认乘客信息并提交订单的部分即可完成自动化抢票。
完成本部分需要掌握的知识:
1)selenium的视角切换、点击、文本框输入、提取内容
2)python基础
说明:完整代码会在第三部分完全实现功能放出
2023年12306购票平台自动化购票二|解决车次查找与预定相关推荐
- 2023年12306购票平台自动化购票终|解决乘客选择与车票提交(附自动化购票完整源代码与演示视频)
目录 一.说明 1.1.背景 1.2.说明 二.步骤 2.1.切换视角检索乘车乘客 2.2.选择乘客 2.3.关闭学生票选择界面 2.4.提交订单 2.5.选择座位并确认 三.完整代码与视频演示 3. ...
- 2023年12306购票平台自动化购票一|解决登录问题
目录 一.说明 1.1.背景 1.2.说明 二.步骤 2.1.打开12306网址 2.2.输入账号与密码 2.3.点击立即登录 2.4.拖动滑块认证 三.结果 3.1.运行结果 四.本次小节 一.说明 ...
- uvm 形式验证_验证平台自动化篇之二:UVM Framework
原标题:验证平台自动化篇之二:UVM Framework 一个UVM使用者,从新手到精通大致会经历三年的时间,而在经过这三年之后,verifier会有倦怠期.除了不可避免地在80%以上工作处于重复性劳 ...
- 计算机毕业设计之仿12306火车票购票平台
1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,计算机毕业设计之仿12306火车票购票平台. 计算机毕业生设计,课程设计需要帮助的可以找我 2 设计概要 21世纪是信息化时代,随着信息技术 ...
- 基于微信小程序的电影院购票平台——计算机毕业设计
开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myecl ...
- java基于微信小程序的电影院购票平台-计算机毕业设计
项目介绍 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/ ...
- 基于微信小程序的电影院购票平台
开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myecl ...
- Springboot毕设项目动物园购票平台17j32(java+VUE+Mybatis+Maven+Mysql)
Springboot毕设项目动物园购票平台17j32(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBu ...
- 候补购票为旅客购票提供更加快捷的渠道
候补购票服务是指旅客通过12306网站或手机客户端购票,如遇所需车次.席别无票时,可按日期.车次.席别提交购票需求,并在预付票款后,售票系统自动安排网上排队候补.当对应的车次.席别因退票.改签等业务产 ...
最新文章
- 可遇不可求的BUG之采用MYSQL odbc 3.51访问数据库返回值缺失
- 2013 ACM/ICPC Asia Regional Chengdu Online We Love MOE Girls 字符串STL 的应用
- 一套代码编译出ios和android,Hippy: Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS、Android 和 Web)...
- 【详解】CPU执行算术运算或逻辑运算时,常将源操作数和结果暂存在()中
- Java_输出60的十六进制
- 【优雅代码】深入浅出 妙用Javascript中apply、call、bind
- C语言数组相似度比对,某课程设计---文件相似度判断
- c++ file* 句柄泄漏_C++核心指南:P.8 勿泄漏任务资源
- linux 文件指针,Linux中文件描述符fd与文件指针FILE*互相转换实例解析
- gdb调试时调用函数、设置观察点以及GDB的宏
- 建立windows2003 域名服务器
- BZOJ2276: [Poi2011]Temperature
- leaflet地图原理_leaflet在线地图简介
- edge浏览器开启ie兼容模式
- Codeforces 1023G:Pisces(最长反链)
- 网络安全笔记1——Internet协议的安全性
- 数字疗法002 | 睡不着,睡不醒,睡不好?这几个平台是失眠星人的救星
- 计算机组成原理求地址范围,计算机组成原理,寻址范围是什么意思?
- FBX文件导入unity贴图丢失或动作无法播放
- 梦幻般仙境mac动态壁纸