抢票脚本通常需要使用第三方模块来实现UI自动化,比如Selenium、PyAutoGUI、Pywinauto等。以下是使用Selenium实现的一个简单的抢票脚本示例:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select

# 设置浏览器驱动路径
browser = webdriver.Chrome('/path/to/chromedriver')

# 打开抢票网站
browser.get('https://www.12306.cn/index/')

# 登录
# ...

# 进入购票页面
browser.get('https://kyfw.12306.cn/otn/leftTicket/init')

# 填写出发地、目的地、日期等信息
from_station_input = browser.find_element_by_id('fromStationText')
from_station_input.clear()
from_station_input.send_keys('北京')

to_station_input = browser.find_element_by_id('toStationText')
to_station_input.clear()
to_station_input.send_keys('上海')

date_input = browser.find_element_by_id('train_date')
date_input.clear()
date_input.send_keys('2021-10-01')
date_input.send_keys(Keys.ENTER)

# 等待车次列表加载完毕
browser.implicitly_wait(10)

# 选择车次、座位等信息
train_list = browser.find_elements_by_css_selector('#queryLeftTable tr')
for train in train_list:
    # 判断是否是目标车次
    if 'G101' in train.text:
        # 选择座位类型
        seat_type_select = Select(train.find_element_by_css_selector('.no-br>a'))
        seat_type_select.select_by_visible_text('商务座')
        
        # 点击预订按钮
        book_button = train.find_element_by_css_selector('.btn72')
        book_button.click()
        break

# 等待选择乘客页面加载完毕
browser.implicitly_wait(10)

# 填写乘客信息
passenger_list = browser.find_elements_by_css_selector('#normal_passenger_id li')
for passenger in passenger_list:
    # 判断是否是目标乘客
    if '张三' in passenger.text:
        # 选择乘客
        passenger_checkbox = passenger.find_element_by_css_selector('input[type=checkbox]')
        passenger_checkbox.click()
        break

# 提交订单
submit_button = browser.find_element_by_id('submitOrder_id')
submit_button.click()

# 确认订单
confirm_button = browser.find_element_by_id('qr_submit_id')
confirm_button.click()

这个脚本的实现过程大致如下:

  1. 使用Selenium打开12306抢票网站;
  2. 登录账号;
  3. 进入购票页面;
  4. 填写出发地、目的地、日期等信息;
  5. 等待车次列表加载完毕;
  6. 选择目标车次、座位类型等信息;
  7. 等待选择乘客页面加载完毕;
  8. 填写目标乘客信息;
  9. 提交订单;
  10. 确认订单。

当然,这只是一个简单的示例,实际应用中还需要考虑更多的细节问题,如验证码识别、抢票时间点、网络延迟等。

python写个ui自动化抢票脚本

原文地址: https://www.cveoy.top/t/topic/ADk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录