解雕侠-好玩游戏一站式下载
首页 游戏攻略 抢票工具|购票小方法——使用Python制作手动购票脚本

抢票工具|购票小方法——使用Python制作手动购票脚本

来源:解雕侠 编辑:JDX22 时间:2022-07-27 10:05:22

很多小伙伴玩家都不太清楚抢票工具|购票小方法——使用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()

抢票工具|购票小方法——使用Python制作手动购票脚本

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制作手动购票脚本的全部内容了,希望能给广大手游玩家玩家们带来一些帮助,更多关于下单的内容,尽在解雕侠!

相关攻略

猜你喜欢