python+selenium实现12306模拟火车票的查询及预订:

线性代码实现流程,完整代码如下:

# coding = utf-8from datetime import date, timedelta
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep# 以下为定义函数部分,其目的是返回今天后的第n天后的日期,格式为“2022-03-28”
def date_n(n):return str((date.today() + timedelta(days=int(n))).strftime('%Y-%m-%d'))# 以下变量用于定义出发城市和到达城市
from_station, to_station = '成都', '重庆'# 以下变量为tomorrow变量
tomorrow = date_n(1)
print(tomorrow)# 打开chrome浏览器
driver = webdriver.Chrome()
# 设置浏览器最大化
driver.maximize_window()
# 打开携程网火车票查询页面
driver.get('https://www.12306.cn/index/')# 定位出发城市和到达城市的页面元素
# 输入出发城市
driver.find_element(By.XPATH, '//input[@id="fromStationText"]').click()
driver.find_element(By.XPATH, '//input[@id="fromStationText"]').send_keys(from_station)
driver.find_element(By.XPATH, '//div[@id="citem_2"]').click()
# 输入到达城市
driver.find_element(By.XPATH, '//input[@id="toStationText"]').click()
driver.find_element(By.XPATH, '//input[@id="toStationText"]').send_keys(to_station)
driver.find_element(By.XPATH, '//div[@id="citem_1"]').click()
sleep(2)
# 输入出发时间
driver.find_element(By.XPATH, '//input[@id="train_date"]').clear()
driver.find_element(By.XPATH, '//input[@id="train_date"]').send_keys(tomorrow)
sleep(2)
# 点击查询
driver.find_element(By.XPATH, '//a[@id="search_one"]').click()
sleep(2)
# 切换到新窗口
driver.switch_to.window(driver.window_handles[1])
# 点击D2244车次的预订
# driver.find_element(By.XPATH, '//a[@class="btn72"][1]').click()
driver.find_element(By.XPATH, '//tr[starts-with(@id,"ticket_76000D22440N_01_06")]/td/a').click()
sleep(2)
'''账号登录'''
# 输入用户名
driver.find_element(By.ID, 'J-userName').send_keys('qaws12342')
# 输入密码
driver.find_element(By.ID, 'J-password').send_keys('qwedsa123')# 关闭浏览器
driver.quit()

python+selenium实现12306模拟火车票的查询及预订相关推荐

  1. Python+Selenium实现12306模拟登录

    最近在学python爬虫,学习到了selenium的使用,看网上有很多使用selenium模拟登录12306网站的文章,于是自己也尝试了一下.期间遇到了一些问题,也参考了很多大佬的文章最终得到了解决, ...

  2. python+selenium实现12306抢票

    python+selenium实现12306抢票 一.准备工作 1.要先下载相关的包,selenium.interval.最好使用国内清华源 pip install (which package) - ...

  3. Python selenium实现全自动购买火车票

    这个是实现结果,因为一天只能取消三次,所以最后一步点击确认被我注释了 1.首先实现使用selenium登陆12306 关于使用selenium实现12306登陆可以看我的另一篇文章 这里实现了使用se ...

  4. python123判断火车票座位_[python篇]自己动手实现火车票中转查询

    一直以来都感觉12306的中转查询很不好用,加上最近决定每周写一篇和专业有关的博文,理论也好(估计目前是写不出什么理论性的东西的 ),实践也好,一来供初学者参考,二来算是对自己所学知识的一种巩固以及对 ...

  5. Python爬取12306(火车票分析助手)!

    说明文字: 1.本项目只是一个练习,熟悉python爬虫技术,没有任何用途 2.最后运行的结果有时候会成功,有时候会显示错误界面,如下图所示.因为12306怎么可能允许你一直爬它呢 准备工作: 下载数 ...

  6. python爬取12306(火车票分析助手)

    说明文字: 1.本项目只是一个练习,熟悉python爬虫技术,没有任何用途 2.最后运行的结果有时候会成功,有时候会显示错误界面,如下图所示.因为12306怎么可能允许你一直爬它呢 开发工具准备: 开 ...

  7. Python爬取12306实现火车票查询

    介绍: 除了官方的12306网站,其他的很多网站都提供了购买查询的功能,像携程的铁友,途牛等等.这些网站他们盈利大都是通过广告的收入,以及通过购票带动的网站内酒店.景点额外收入,他们的网站界面友好型优 ...

  8. python编程实践(3):python+selenium实现12306抢票脚本

    又到了一年一度的春运时节,抢个票? 1.设计思路 如果我们要买一张火车票,我们会怎么做?打开12306,登陆,输入出发地和目的地,选择出行日期,然后点击查询,有余票的话就下单购买,没有票就点刷新或者等 ...

  9. python + selenium实现12306全自动买票

    整个程序分了三个模块:购票模块(主体).验证码处理模块.余票查询模块 使用方法:三个模块分别保存为三个python文件,名字分别为:book_ticket,captcha,check_ticket. ...

  10. 12-基于selenium实现12306模拟登录,及京东登录滑动缺口验证模拟登录

    流程分析: 使用selenium打开登录页面 对当前selenium打开的这张页面进行截图 对当前图片的局部区域(验证码图片区域)进行截图 这样验证码图片和模拟登录进行所显示的图片一一对应(如果我们对 ...

最新文章

  1. Swift 对象内存模型探究(一)
  2. Hibernate:不容易理解的 lock 和 merge
  3. 安装RRDtool 1.4.5
  4. 【BZOJ4873】[六省联考2017]寿司餐厅(网络流)
  5. 狂神java什么来头_狂神说SpringBoot18:集成SpringSecurity
  6. html5 通信方式,(原生js页面通信)关于html5的PostMessage的用法总结
  7. datagridview取消默认选中_C# WinForm 取消DataGridView的默认选中Cell 使其不反蓝
  8. 如何构建具有实时搜索功能的React Native FlatList
  9. 转载:javascript中定义兑现改的5种方式
  10. [转]caffe-ssd中 net.forward()返回值
  11. SOA(在Tuscany 中开发web service)
  12. 微信支付之异步通知签名错误
  13. python调用hownet API计算两个词的相似度
  14. 智能配送与货物跟踪图
  15. C语言使用栈和队列实现停车场管理
  16. Linux下FTP上传下载之续传命令
  17. 计算机excel感叹号,excel的文件上有个的感叹号是什么意思?
  18. macos系统镜像iso_我们一起来安装----虚拟机安装macOS
  19. 港中文、佐治亚理工招收AI博士生
  20. docker实践(2)常用命令和DockerFile详解

热门文章

  1. 智商、情商和逆商与程序员职业生涯发展
  2. 一个全栈工程师要掌握哪些技能
  3. html div旋转45度,CSS动画 - 在每次悬停时进一步旋转45度
  4. 【实习日报】2019年4月上半月 前端开发实习工作日报汇总
  5. 【C语言学习】sscanf的简单使用.
  6. unity播放360全景视频
  7. No query specified(Mysql数据库报错)
  8. 安装pika配置系统服务过程中遇到的错误
  9. MATLAB中text函数使用
  10. Echarts title和subtitle进行合并显示