周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!

这篇具有很好参考价值的文章主要介绍了周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相信想去周董演唱会的大家都用过大麦网抢票吧?

可是

抢不到啊

该说不说 我抢到了

周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!
周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!

周杰伦演唱会总是抢不到票?教你用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 = "就是那个网站"
login_url = "就是那个登陆地址"
target_url = '就是那个目标网站
#这里不是我不放,是平台不给放
#要全部的就来

初始化加载

class Concert:
def __init__(self):
 self.status = 0 
 self.login_method = 1 
 self.driver = webdriver.Chrome(executable_path='chromedriver.exe') 

登录调用设置cookie

def set_cookie(self):
 self.driver.get(damai_url)
print("###请点击登录###")
while self.driver.title.find('dm-全球演出赛事官方购票平台') != -1:
 sleep(1)
print('###请扫码登录###')

while self.driver.title != 'dm-全球演出赛事官方购票平台-100%正品、先付先抢、在线选座!':
 sleep(1)
print("###扫码成功###")
 pickle.dump(self.driver.get_cookies(), open("cookies.pkl", "wb"))
print("###Cookie保存成功###")
 self.driver.get(target_url

获取cookie

def get_cookie(self):
try:
 cookies = pickle.load(open("cookies.pkl", "rb")) 
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'): 
 self.set_cookie()
else:
 self.driver.get(target_url)
 self.get_cookie()

打开浏览器

def enter_concert(self):
"""打开浏览器"""
print('###打开浏览器,进入dm网###')

 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 choose_ticket(self):
if self.status == 2: 
print("="*30)
print("###开始进行日期及票价选择###")
while self.driver.title.find('确认订单') == -1: 
try:
 buybutton = self.driver.find_element_by_class_name('buybtn').text
if buybutton == "提交缺货登记":

 self.status=2
 self.driver.get(target_url)
print('###抢票未开始,刷新等待开始###')
continue
elif buybutton == "立即预定":
 self.driver.find_element_by_class_name('buybtn').click()
 self.status = 3
elif buybutton == "立即购买":
 self.driver.find_element_by_class_name('buybtn').click()
 self.status = 4
elif buybutton == "选座购买":
 self.driver.find_element_by_class_name('buybtn').click()
 self.status = 5
except:
print('###未跳转到订单结算界面###')
 title = self.driver.title
if title == '选座购买':
 self.choice_seats()
elif title == '确认订单':
while True:
print('waiting ......')
if self.isElementExist('//*[@id="container"]/div/div[9]/button'):
 self.check_order()
break

选择座位

 def choice_seats(self):
while self.driver.title == '选座购买':
while self.isElementExist('//*[@id="app"]/div[2]/div[2]/div[1]/div[2]/img'):
print('请快速的选择您的座位!!!')
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做一个自动抢票脚本!

最后

我真的庆幸还好我学了python ,该说不说,有点用的

从现在开始就准备去看演唱会噜~

周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!
周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!文章来源地址https://www.toymoban.com/news/detail-439785.html

到了这里,关于周杰伦演唱会总是抢不到票?教你用Python做一个自动抢票脚本!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python脚本抢大麦网演唱会门票 ---保姆级教程 python脚本抢大麦网演唱会门票

    1.下载并安装anaconda:https://repo.continuum.io/archive/ 下载对应linux/mac/windows版本 2.下载并安装pycharm:https://www.jetbrains.com/pycharm 3.配置pycharm中的python设置 选择刚才安装的anaconda目录下的python.exe 打开终端Terminal,并创建新的conda环境:conda create -n your_env_name 切换conda环境:conda activa

    2024年02月03日
    浏览(43)
  • 用Java写一个抢演唱会门票的脚本

    这个代码示例定义了一个 grabTicket 函数,模拟了抢票过程。每个线程都会调用这个函数来进行抢票行为。 在 grabTicket 函数中,首先输出一条消息,表示正在尝试获取门票,并延迟2秒钟模拟网络请求时间。然后,随机决定是否成功获取门票。如果没有成功,则输出相应的消息

    2024年02月12日
    浏览(34)
  • 用C++写一个抢演唱会门票的脚本

    这个代码示例首先定义了演唱会门票总数,并初始化剩余门票数量为总数。 然后,它使用一个for循环模拟了多个用户同时进行抢票行为的过程。每个用户都会尝试获取门票,通过随机决定是否成功来模拟网络请求的结果。 如果用户尝试获取门票失败,则将输出相应的消息;

    2024年02月16日
    浏览(73)
  • 如何使用 Python 自动购买 Interpark 演唱会门票 ?

    前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 Interpark是韩国的一家知名网上购物网站,成立于1996年。 它是韩国最早开展网上零售业务的公司之一,提供各种产品,包括各种书籍、电子产品、珠宝、户外用品、食品和服装等等。 Interpark还提供机票、旅游和酒店等服务。

    2024年02月13日
    浏览(41)
  • 利用Python定时抢购大麦网演唱会门票实例

    摘要:本文将介绍如何使用Python编写定时任务,结合爬虫技术实现定时抢购大麦网演唱会门票的功能。我们将使用Python的schedule库来实现定时任务,并结合爬虫库BeautifulSoup和requests来实现抢购功能,最后给出详细的可执行代码。 大麦网是国内知名的演唱会门票售卖平台,由于

    2024年02月15日
    浏览(44)
  • 用Python写一个抢演唱会门票的脚本

    这个代码示例定义了一个 grab_ticket 函数,模拟了抢票过程。每个线程都会调用这个函数来进行抢票行为。 在 grab_ticket 函数中,首先输出一条消息,表示正在尝试获取门票,并延迟2秒钟模拟网络请求时间。然后,随机决定是否成功获取门票。如果没有成功,则输出相应的消息

    2024年02月15日
    浏览(49)
  • 用selenium去爬取大麦网页面的演唱会信息

    利用selenium.webdriver爬取大麦网页面演唱会信息,信息包括: 演唱会标题、时间、价钱、地点、图片、网址。 操作环境: 1. Window10;  2. python3.9;   3. PycharmIDE 第三方库版本: 1. selenium 4.1.1 2. requests 2.28.1 本实验主要利用Goggle chrome浏览器进行,其中 浏览器版本为118开头 ,可在设

    2024年02月02日
    浏览(43)
  • 如何使用 Python Selenium 自动购买 Interpark 演唱会门票?

    Interpark是韩国的一家知名网上购物网站,成立于1996年。它是韩国最早开展网上零售业务的公司之一,提供各种产品,包括各种书籍、电子产品、珠宝、户外用品、食品和服装等等。Interpark还提供机票、旅游和酒店等服务。它已经成为韩国最大的综合型网上购物商城之一。 1

    2024年02月10日
    浏览(35)
  • 程序员大战黄牛党,破解演唱会门票秒光之困

    反黄牛,为何是场持久战? 撰 文 | 林秋艺 编辑 | 龚   正 这个五月,似乎都被五月天霸屏了。从5月9日的30万张五月天演唱会门票被5秒扫光;到粉丝群起反抗,喊出“宁可鸟巢门口站,也不能让黄牛赚”,再到这几天“五月天演唱会黄牛票价格下跌近万元”冲上热搜榜……

    2024年02月06日
    浏览(42)
  • 【开题报告】基于SpringBoot的演唱会门票在线预定系统的设计与实现

    基于Spring Boot的演唱会门票在线预定系统的设计与实现旨在满足现代社会对于便捷、高效购票服务的需求。随着音乐行业的发展和演唱会市场的繁荣,越来越多的人愿意参加演唱会,享受音乐盛宴。然而,传统的线下购票方式存在排队等待和票源紧张等问题,无法满足人们日

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包