Python制作【大麦网】自动抢票程序

前言

大麦网,是中国综合类现场娱乐票务营销平台,业务覆盖演唱会、 话剧、音乐剧、体育赛事等领域。

但是因为票数有限,还有黄牛们不能丢了饭碗,所以导致了,很多人都抢不到票

那么,今天带大家用Python来制作一个自动抢票的脚本小程序

知识点:

  • 面向对象编程
  • selenium 操作浏览器
  • pickle 保存和读取Cookie实现免登陆
  • time 做延时操作
  • os 创建文件,判断文件是否存在

开发环境:

  • 版 本:anaconda5.2.0(python3.6.5)
  • 编辑器:pycharm

先导入本次所需的模块

import os
import time
import pickle
from time import sleep
from selenium import webdriver

第一步,实现免登录

确定目标,设置全局变量

# 大麦网主页
damai_url = "https://www.damai.cn/"
# 登录页
login_url = "https://passport.damai.cn/login?ru=https%3A%2F%2Fwww.damai.cn%2F"
# 抢票目标页
target_url = 'https://detail.damai.cn/item.htm?spm=a2oeg.search_category.0.0.77f24d15RWgT4o&id=654534889506&clicktitle=%E5%A4%A7%E4%BC%97%E7

初始化加载

class Concert:
    def __init__(self):
        self.status = 0         # 状态,表示如今进行到何种程度
        self.login_method = 1   # {0:模拟登录,1:Cookie登录}自行选择登录方式
        self.driver = webdriver.Chrome(executable_path='chromedriver.exe')        # 默认Chrome浏览器

登录调用设置cookie

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)

抢票是违反站规定和道德的行为,不建议使用。这里提供的代码仅供学习和研究目的,不得用于非法用途。 以下是一个大麦抢票Python 代码示例,可以用于自动化购买限时抢购的门票。 ```python import requests import time import hashlib # 填写你的账号密码和活动信息 username = 'your_username' password = 'your_password' activity_id = '123456' activity_url = 'https://www.damai.cn/project/' + activity_id + '.html' # 登录大麦 session = requests.Session() session.headers.update({ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299' }) login_url = 'https://secure.damai.cn/login?ru=https%3A%2F%2Fwww.damai.cn%2F' session.get(login_url) login_data = { 'u': username, 'p': hashlib.md5(password.encode('utf-8')).hexdigest(), 'verifycode': '', 'remember': '0', 'loginid': '', 'nloginpwd': '', 'nonce': '', 'logintype': '', 'loginsite': 0, 'timestamp': int(time.time() * 1000), 'callback': 'jQuery1910863466670682696_1515079871564', '_': int(time.time() * 1000) } r = session.post(login_url, data=login_data) # 获取活动信息 activity_data = { 'id': activity_id, 'type': 1, 'rnd': int(time.time() * 1000), '_': int(time.time() * 1000) } r = session.get(activity_url, params=activity_data) # 提交订单 submit_data = { 'buyNum': 1, 'price': r.json()['data']['priceStr'], 'projectId': activity_id, 'totalPrice': r.json()['data']['priceStr'], 'ticketArr': r.json()['data']['performList'][0]['ticketList'][0]['priceStr'] + '|1|', 'type': '1', 'venueId': r.json()['data']['venueId'], 'prizeType': '', 'orderFrom': '0', 'orderRemark': '', 'orderTicketList': [{ 'price': r.json()['data']['performList'][0]['ticketList'][0]['priceStr'], 'projectPrice': r.json()['data']['priceStr'], 'projectId': activity_id, 'ticketId': r.json()['data']['performList'][0]['ticketList'][0]['ticketId'], 'ticketName': r.json()['data']['performList'][0]['ticketList'][0]['ticketName'], 'ticketNum': 1, 'ticketPrice': r.json()['data']['performList'][0]['ticketList'][0]['priceStr'] }], 'idCardList': '', 'invoiceTitle': '', 'ticketFlag': '1', 'platformId': '', 'merchandiseFlag': '' } submit_url = 'https://buy.damai.cn/confirmOrder.html' r = session.post(submit_url, data=submit_data) print(r.json()) ``` 该代码会模拟用户登录大麦并提交订单,但并不能保证一定能够成功抢到票。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值