12306完整抢票脚本
时间: 2023-12-25 13:25:23 浏览: 206
抢票脚本的实现步骤如下:
1. 导入需要的模块。
2. 初始化WebDriver,打开12306网站。
3. 登录12306账号。
4. 进入车票查询页面。
5. 查询车票。
6. 选择车次和座位。
7. 填写乘客信息和提交订单。
8. 处理验证码。
9. 确认订单和支付。
下面是一个简化的python抢票脚本的示例:
```
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 初始化WebDriver
driver = webdriver.Chrome()
# 打开12306网站
driver.get("https://kyfw.12306.cn/otn/index/init")
# 登录12306账号
username = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")
username.send_keys("your_username")
password.send_keys("your_password")
time.sleep(3)
driver.find_element_by_id("loginSub").click()
# 进入车票查询页面
driver.find_element_by_id("selectYuding").click()
# 查询车票
from_station = driver.find_element_by_id("fromStationText")
to_station = driver.find_element_by_id("toStationText")
date = driver.find_element_by_id("train_date")
from_station.clear()
from_station.send_keys("北京")
from_station.send_keys(Keys.ENTER)
to_station.clear()
to_station.send_keys("上海")
to_station.send_keys(Keys.ENTER)
date.clear()
date.send_keys("2021-01-01")
time.sleep(3)
driver.find_element_by_id("query_ticket").click()
# 选择车次和座位
time.sleep(5) # 等待页面加载完成
train = driver.find_element_by_xpath("//tr[@datatran='G1']/td[1]/div/input")
train.click()
seat = driver.find_element_by_xpath("//tr[@datatran='G1']/td[2]/div/a")
seat.click()
# 填写乘客信息和提交订单
time.sleep(3)
driver.find_element_by_id("normalPassenger_0").click()
time.sleep(1)
driver.find_element_by_id("submitOrder_id").click()
time.sleep(1)
driver.find_element_by_id("qr_submit_id").click()
# 处理验证码
time.sleep(10) # 等待验证码出现
# 通过手动输入验证码的方式处理验证码
# 确认订单和支付
time.sleep(3)
driver.find_element_by_id("pay_btn_id").click()
```
阅读全文