大麦网抢票python代码os time pickle sleep selenium 模块编写大麦网脚本
时间: 2024-01-18 14:04:32 浏览: 111
python持久性管理pickle模块详细介绍
以下是一个基于 Selenium 的 Python 脚本,用于在大麦网抢票:
```python
import os
import time
import pickle
from selenium import webdriver
# 设置 Chrome 驱动程序路径
chrome_driver_path = "/path/to/chromedriver"
# 设置票务信息
ticket_url = "https://www.damai.cn/"
ticket_page_url = "https://detail.damai.cn/item.htm?id=123456" # 替换为你要购买的票务页面链接
# 设置订单信息
buyer_name = "张三" # 替换为你的姓名
buyer_id = "123456789012345678" # 替换为你的身份证号码
buyer_phone = "13812345678" # 替换为你的手机号码
# 设置自动填写表单选项
auto_fill_form = True # 是否自动填写表单
auto_select_seat = True # 是否自动选择座位
auto_submit_order = True # 是否自动提交订单
auto_pay_order = False # 是否自动支付订单
# 设置等待时间
wait_for_login = 60 # 等待手动登录的时间,单位:秒
wait_for_buy = 10 # 等待购买按钮出现的时间,单位:秒
wait_for_order = 60 # 等待订单提交的时间,单位:秒
# 加载 Chrome 驱动程序
browser = webdriver.Chrome(chrome_driver_path)
# 打开大麦网首页
browser.get(ticket_url)
# 等待手动登录
print("请手动登录大麦网,并在 {} 秒内完成操作。".format(wait_for_login))
time.sleep(wait_for_login)
# 打开票务页面
browser.get(ticket_page_url)
# 等待购买按钮出现
print("等待购买按钮出现...")
while True:
try:
buy_button = browser.find_element_by_css_selector(".buybtn")
break
except:
time.sleep(1)
continue
# 自动填写表单
if auto_fill_form:
# 填写购票人信息
browser.find_element_by_css_selector(".buyers input[name='name']").send_keys(buyer_name)
browser.find_element_by_css_selector(".buyers input[name='mobile']").send_keys(buyer_phone)
browser.find_element_by_css_selector(".buyers input[name='idcard']").send_keys(buyer_id)
# 选择配送方式
browser.find_element_by_css_selector(".perform__delivery__item:nth-child(3)").click()
# 自动选择座位
if auto_select_seat:
# 点击选座按钮
browser.find_element_by_css_selector(".perform__btn__selectseat").click()
# 等待座位图加载完成
print("等待座位图加载完成...")
while True:
try:
browser.find_element_by_css_selector(".seatmap__body")
break
except:
time.sleep(1)
continue
# 选择座位
browser.find_element_by_css_selector(".seatmap__body .seat").click()
# 自动提交订单
if auto_submit_order:
# 点击提交订单按钮
browser.find_element_by_css_selector(".buybtn").click()
# 等待订单提交完成
print("等待订单提交完成...")
while True:
try:
browser.find_element_by_css_selector(".order__success__tips")
break
except:
time.sleep(1)
continue
# 自动支付订单
if auto_pay_order:
# 点击支付按钮
browser.find_element_by_css_selector(".order__success__btns__btn").click()
# 等待二维码加载完成
print("等待二维码加载完成...")
while True:
try:
browser.find_element_by_css_selector(".qr__code")
break
except:
time.sleep(1)
continue
# 关闭浏览器
browser.quit()
```
注意:这个脚本是用于演示目的,实际使用时,需要根据实际情况进行修改。另外,使用自动化脚本参与抢票行为可能会违反大麦网的相关规定,建议谨慎使用。
阅读全文