python+selenium 12306自动购票

python+selenium 12306自动购票

介绍:用python+selenium实现12306自动购票,登录验证码暂不知如何绕过,想通过传cookie,但试了下不行,望各位指点

12306自动购票视图

1.手动扫码登录在这里插入图片描述
2.查询指定日期
在这里插入图片描述
3.等待付款
在这里插入图片描述

代码

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import  ActionChains
browser = webdriver.Firefox()
url="https://kyfw.12306.cn/otn/"
browser.get(url)
# 等待扫码登录
sleep(10)
# 点击确认
browser.find_element_by_xpath("//a[@class='btn btn-primary ok']").click()
# 点击首页
browser.find_element_by_xpath("//li[@id='J-index']//a[@name='g_href']").click()
sleep(5)
# 点击出发点
browser.find_element_by_xpath("//input[@id='fromStationText']").click()
# 点击成都
browser.find_element_by_xpath("/html/body/div[9]/div/div/div/div/ul[2]/li[7]").click()
# browser.find_element_by_xpath("//input[@id='fromStationText']").send_keys("成都")
# 点击到达地
browser.find_element_by_xpath("//input[@id='toStationText']").click()
# browser.find_element_by_xpath("//input[@id='toStationText']").send_keys("北京")
# 点击北京
browser.find_element_by_xpath("/html/body/div[9]/div/div/div/div/ul[2]/li[1]").click()
# 点击搜索
browser.find_element_by_xpath('//*[@id="search_one"]').click()
sleep(5)
# 切换到当前窗口
num=browser.window_handles
# 获取当前页句柄
print(num)
browser.switch_to_window(num[1])
sleep(5)
# 选择日期控件
browser.find_element_by_xpath("//span[@id='date_icon_1']").click()
sleep(2)
# 指定日期
browser.find_element_by_xpath("//div[1]//div[2]//div[12]//div[1]").click()
sleep(2)
# 点击查询
browser.find_element_by_xpath("//a[@id='query_ticket']").click()
sleep(5)
# 点击G308 预定
browser.find_element_by_xpath("//tr[@id='ticket_760000G3080E']//a[contains(@class,'btn72')]").click()
sleep(5)
# 勾选乘车人
browser.find_element_by_xpath("//li[1]//label[1]").click()
sleep(2)
# 点击提交
browser.find_element_by_xpath("//a[@id='submitOrder_id']").click()
# 等待确认付款

流程图

Created with Raphaël 2.2.0 扫码登录 查询指定日期 购买 结束 yes no

B站演示

链接: 点我看效果.

ps:第一次发,往多指点,多包含

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值