很多小伙伴玩家都不太清楚抢票工具|购票小方法——使用Python制作手动购票脚本,那么今天解雕侠小编给大家带来一篇 下单 相关的文章,希望大家看了之后能有所收获,最后请大家持续关注我们!
大麦网是中国综合性的现场娱乐票务和营销平台。业务涵盖演唱会、话剧、音乐剧、体育赛事等领域。
但是由于票数有限抢票工具,黄牛们不能失业,所以很多人都拿不到票
所以,明天我就带大家做一个手动购票的脚本小程序
知识点:()面向对象编程
操作浏览器
保存阅读实现免登录
是时候做延迟操作了
os创建文件判断开发环境中是否存在该文件: () 版本: .2.0 (.6.5)
编者:先导出本次需要的模块()
import os
import time
import pickle
from time import sleep
from selenium import webdriver
第一步,达到免费登录的目的,设置全局变量()
# 大麦网主页
damai_url = "大麦网-全球演出赛事官方购票平台-100%正品、先付先抢、在线选座!"
# 登录页
login_url = "大麦登录"
# 抢票目标页
target_url = '【日照】大众网20周年 海报·2021新青年音乐节日照站【网上订票】- 大麦网
初始化加载()
class Concert:
def __init__(self):
self.status = 0 # 状态,表示如今进行到何种程度
self.login_method = 1 # {0:模拟登录,1:Cookie登录}自行选择登录方式
self.driver = webdriver.Chrome(executable_path='chromedriver.exe') # 默认Chrome浏览器
登录调用 setup()
def set_cookie(self):
self.driver.get(damai_url)
print("###请点击登录###")
while self.driver.title.find('大麦网-全球演出赛事官方购票平台') != -1:
sleep(1)
print('###请扫码登录###')
while self.driver.title != '大麦网-全球演出赛事官方购票平台-100%正品、先付先抢、在线选座!':
sleep(1)
print("###扫码成功###")
pickle.dump(self.driver.get_cookies(), open("cookies.pkl", "wb"))
print("###Cookie保存成功###")
self.driver.get(target_url)
获得()
def get_cookie(self):
try:
cookies = pickle.load(open("cookies.pkl", "rb")) # 载入cookie
for cookie in cookies:
cookie_dict = {
'domain':'.damai.cn', # 必须有,不然就是假登录
'name': cookie.get('name'),
'value': cookie.get('value')
}
self.driver.add_cookie(cookie_dict)
print('###载入Cookie###')
except Exception as e:
print(e)
登录
def login(self):
if self.login_method==0:
self.driver.get(login_url)
# 载入登录界面
print('###开始登录###')
elif self.login_method==1:
if not os.path.exists('cookies.pkl'):
# 如果不存在cookie.pkl,就获取一下
self.set_cookie()
else:
self.driver.get(target_url)
self.get_cookie()
打开浏览器
def enter_concert(self):
"""打开浏览器"""
print('###打开浏览器,进入大麦网###')
# self.driver.maximize_window() # 最大化窗口
# 调用登陆
self.login() # 先登录再说
self.driver.refresh() # 刷新页面
self.status = 2 # 登录成功标识
print("###登录成功###")
# 后续德云社可以讲
if self.isElementExist('/html/body/div[2]/div[2]/div/div/div[3]/div[2]'):
self.driver.find_element_by_xpath('/html/body/div[2]/div[2]/div/div/div[3]/div[2]').click()
第二步抢票工具,买票下单判断元素是否存在()
def isElementExist(self, element):
flag = True
browser = self.driver
try:
browser.find_element_by_xpath(element)
return flag
except:
flag = False
return flag
投票操作()
选择座位()
def choice_seats(self):
while self.driver.title == '选座购买':
while self.isElementExist('//*[@id="app"]/div[2]/div[2]/div[1]/div[2]/img'):
# 座位手动选择 选中座位之后//*[@id="app"]/div[2]/div[2]/div[1]/div[2]/img 就会消失
print('请快速的选择您的座位!!!')
# 消失之后就会出现 //*[@id="app"]/div[2]/div[2]/div[2]/div
while self.isElementExist('//*[@id="app"]/div[2]/div[2]/div[2]/div'):
# 找到之后进行点击确认选座
self.driver.find_element_by_xpath('//*[@id="app"]/div[2]/div[2]/div[2]/button').click()
订单操作()
def check_order(self):
if self.status in [3,4,5]:
print('###开始确认订单###')
try:
# 默认选第一个购票人信息
self.driver.find_element_by_xpath('//*[@id="container"]/div/div[2]/div[2]/div[1]/div/label').click()
except Exception as e:
print("###购票人信息选中失败,自行查看元素位置###")
print(e)
# 最后一步提交订单
time.sleep(0.5) # 太快会影响加载,导致按钮点击无效
self.driver.find_element_by_xpath('//div[@class = "w1200"]//div[2]//div//div[9]//button[1]').click()
购票完成,退出()
def finish(self):
self.driver.quit()
测试代码是否成功
if __name__ == '__main__':
try:
con = Concert() # 具体如果填写请查看类中的初始化函数
con.enter_concert() # 打开浏览器
con.choose_ticket() # 开始抢票
except Exception as e:
print(e)
con.finish()
最后,让我们看看它是如何工作的
上面就是抢票工具|购票小方法——使用Python制作手动购票脚本的全部内容了,希望能给广大手游玩家玩家们带来一些帮助,更多关于下单的内容,尽在解雕侠!