丹摩|丹摩助力selenium实现大麦网抢票

丹摩|丹摩助力selenium实现大麦网抢票

声明:非广告,为用户体验

1.引言

在人工智能飞速发展的今天,丹摩智算平台(DAMODEL)以其卓越的AI算力服务脱颖而出,为开发者提供了一个简化AI开发流程的强大工具。通过租赁GPU资源,丹摩智算平台使得机器学习和深度学习项目的开发变得更加高效和便捷。本文将详细介绍如何在丹摩智算平台上部署和使用selenium实现大麦网抢票

1.1背景

丹摩智算平台以其用户友好的界面和强大的技术支持,成为AI开发者的首选。它不仅提供了高性能的计算资源,还通过各种优惠活动吸引用户,进一步降低了AI开发的门槛。

1.2访问与登录

  • 访问地址:丹摩智算平台官网

  • 访问平台:使用支持的浏览器,如Edge/Chrome打开丹摩智算平台官网。

  • 用户登录:输入账号和密码登录。如果是首次使用,请先完成注册并完善个人信息。

请添加图片描述

1.3本次项目架构设计图

在这里插入图片描述

2.部署与使用

2.1.创建项目

  • 登录后,点击GPU云实例。

  • 创建实例:点击“创建实例”。
    在这里插入图片描述

  • 资源选择:选择适用的计算资源类型(如 CPU、GPU、内存需求等)。

由于我们这里选择3090 显卡,硬盘选择默认的 100GB 系统盘和 50GB 数据盘。
在这里插入图片描述

  • 镜像选择: PyTorch(PyTorch2.3.0,Ubuntu-22.04,CUDA12.1 版本)镜像。

在这里插入图片描述

  • 密钥对:创建并绑定密钥对,最后启动。

在这里插入图片描述

  • 进入 JupyterLab

在这里插入图片描述

  • 打开终端

在这里插入图片描述

2.2环境配置

导入selenium库:

pip install selenium

2.4开始运行

在这里插入图片描述

相关main.py代码:

import os
import time
import pickle
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By# 抢票相关页面
# 大麦网主页
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.home.card_0.ditem_1.2bbb23e1uo54LV&id=853329221023'# 定义具体类
class Concert:def __init__(self):self.status = 0         # 状态,表示如今进行到何种程度self.login_method = 1   # {0:模拟登录,1:Cookie登录}自行选择登录方式self.driver = webdriver.Chrome()       # 默认Chrome浏览器self.execute_stealth_script(self)  # 执行stealth脚本# 执行stealth脚本# 机器检测问题,使用的driver会被识别为机器人,无法欺骗到检测程序,这里我们使用stealth.min.js进行解决。@staticmethoddef execute_stealth_script(self):with open('stealth.min.js', 'r') as f:js = f.read()self.driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': js})print('###已执行stealth脚本###')# 通过cookie进行登陆# 在Concert类中login_method = 1时才会使用到,便于快速登陆,省去登陆过程,其中初次运行代码时,用户登陆后会在本地生成cookies.pkl文件来存储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)def get_cookie(self):try:cookies = pickle.load(open("cookies.pkl", "rb"))  # 载入cookiefor 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("###登录成功###")# 选择票型def choose_ticket(self):if self.status == 2:                  #登录成功入口print("="*30)print("###检查是否开始售票###")# while not self.isElementExistByClass('buy-link'):#     self.driver.refresh()#     print("###售票尚未开始,刷新等待开始###")# TODO 选择票型#========begin=========# 选择具体票型部分未写,该部分可自行添加,不添加的话,自行选择进入页面后大麦的默认选择。#========end===========self.driver.find_element(By.CLASS_NAME, 'buybtn').click()    #点击购票二维码下的购买连接time.sleep(1.5)self.check_order()# 确认订单def check_order(self):if self.status == 2:print('###开始确认订单###')if self.driver.title == '订单确认页':print('###检查是否需要填写观影人')# if self.isElementExistByXPATH('//*[@id="dmViewerBlock_DmViewerBlock"]'):#     self.driver.find_element(By.XPATH, '//*[@id="dmViewerBlock_DmViewerBlock"]/div[2]/div/div').click()#     time.sleep(0.5)# time.sleep(60)print('###跳转支付选择界面###')self.driver.find_element(By.XPATH, '//*[@id="dmOrderSubmitBlock_DmOrderSubmitBlock"]/div[2]/div/div[2]/div[2]/div[2]/span').click()time.sleep(2)self.pay_order()# 支付宝登陆支付def pay_order(self):if self.driver.title == "支付宝付款":print('###支付订单###')time.sleep(60)self.driver.find_element(By.XPATH, '//*[@id="app"]/div[3]/div[1]/button[2]').click()print('###跳转至浏览器支付###')time.sleep(1.5)self.driver.find_element(By.XPATH, '//*[@id="app"]/div[3]/div/div[1]/div[2]/input').clear()self.driver.find_element(By.XPATH, '//*[@id="app"]/div[3]/div/div[1]/div[2]/input').send_keys('支付宝账号')      #输入支付宝账号self.driver.find_element(By.XPATH, '//*[@id="app"]/div[3]/div/button').click()time.sleep(1.5)self.driver.find_element(By.XPATH, '//*[@id="app"]/div[2]/button').click()while True:time.sleep(1)print('###请输入支付密码###')# 脚本结束退出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()

2.5代码结果

成功实现大麦网抢票

在这里插入图片描述

2.6代码架构设计图

在这里插入图片描述

通过本文的详细指南,您可以轻松地在丹摩智算平台上部署和使用selenium实现大麦网抢票。

3.总结

本文详细介绍了如何在丹摩智算平台(DAMODEL)上部署和使用Selenium实现大麦网抢票的流程。丹摩智算平台以其强大的AI算力服务和用户友好的界面,为AI开发者提供了一个高效便捷的开发环境,降低了AI开发的门槛。

文章首先介绍了丹摩智算平台的背景和如何访问登录,然后详细阐述了项目的架构设计,并逐步指导用户创建项目、选择资源、配置环境以及部署Selenium代码。在部署与使用部分,文章提供了创建GPU云实例的步骤,包括资源选择、镜像选择和密钥对的创建。接着,通过Python代码展示了如何使用Selenium进行大麦网的抢票操作,包括登录、选择票型、确认订单和支付等环节。代码中包含了详细的注释,便于读者理解和学习。文章还提供了代码运行结果的截图,以及代码架构设计图,帮助读者更直观地理解整个抢票流程。

为了提高文章的质量,建议增加目标读者的明确性,提供更多关于丹摩智算平台的背景信息,确保步骤说明的清晰性和截图的准确性。同时,保持专业术语的准确性,确保语言风格的一致性,并进行彻底的校对以避免语法和拼写错误。最后,确保所有外部链接的有效性,以提升文章的实用性和可信度。通过这些改进,文章将更加专业、易于理解,为读者提供实用的大麦网抢票指南。

通过本文的详细指南,读者可以轻松地在丹摩智算平台上部署和使用Selenium实现大麦网抢票,体验到丹摩智算平台带来的便利和高效。丹摩智算平台的高性能计算资源和技术支持,无疑为AI开发者提供了强大的助力,使得复杂的抢票任务变得简单可行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/64867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业内训|高智能数据构建、Agent研发及AI测评技术内训-吉林省某汽车厂商

吉林省某汽车厂商为提升员工在AI大模型技术方面的知识和实践能力,举办本次为期8天的综合培训课程。本课程分为两大部分:面向全体团队成员的AI大模型技术结构与行业应用,以及针对技术团队的高智能数据构建与Agent研发。课程内容涵盖非结构化数…

LLaMA-Factory 单卡3080*2 deepspeed zero3 微调Qwen2.5-7B-Instruct

环境安装 git clone https://gitcode.com/gh_mirrors/ll/LLaMA-Factory.gitcd LLaMA-Factorypip install -e ".[torch,metrics]"pip install deepspeed 下载模型 pip install modelscope modelscope download --model Qwen/Qwen2.5-7B-Instruct --local_dir /roo…

uniapp blob格式转换为video .mp4文件使用ffmpeg工具

前言 介绍一下这三种对象使用场景 您前端一旦涉及到文件或图片上传Q到服务器,就势必离不了 Blob/File /base64 三种主流的类型它们之间 互转 也成了常态 Blob - FileBlob -Base64Base64 - BlobFile-Base64Base64 _ File uniapp 上传文件 现在已获取到了blob格式的…

【Rabbitmq篇】RabbitMQ⾼级特性----持久性,发送⽅确认,重试机制

目录 一.持久化 1 .交换机持久化 2 队列持久化 3.消息持久化 测试场景 二.发送⽅确认 1 .confirm确认模式 2 return退回模式 如何保证RabbitMQ消息的可靠传输?(面试重点) 三. 重试机制 一.持久化 我们在前⾯讲了消费端处理消息时,…

深度学习之目标检测——RCNN

Selective Search 背景:事先不知道需要检测哪个类别,且候选目标存在层级关系与尺度关系 常规解决方法:穷举法,在原始图片上进行不同尺度不同大小的滑窗,获取每个可能的位置 弊端:计算量大,且尺度不能兼顾 Selective …

Flutter环境搭建

1.Flutter 简介 1.1 Flutter 是什么 ? Flutter 是一个 UI SDK(Software Development Kit)跨平台解决方案:可以实现一套代码发布移动端(iOS、Android、HarmonyOS)、Web端、桌面端目前很多公司都在用它&…

安全算法基础(一)

安全算法是算法的分支之一,还的依靠大量的数学基础进行计算,本文参照兜哥的AI安全样本对抗,做一个简单的算法安全概括,从零学习。 最新的安全算法对于我们常规的攻击样本检测,效果是不理想的,为了探究其原…

单元测试-Unittest框架实践

文章目录 1.Unittest简介1.1 自动化测试用例编写步骤1.2 相关概念1.3 用例编写规则1.4 断言方法 2.示例2.1 业务代码2.2 编写测试用例2.3 生成报告2.3.1 方法12.3.2 方法2 1.Unittest简介 Unittest是Python自带的单元测试框架,适用于:单元测试、Web自动…

QtCreator配置github copilot实现AI辅助编程

文章目录 1、概述2、配置环境3、演示 1、概述 新时代的浪潮早就已经来临,上不了船的人终将被抛弃,合理使用AI辅助开发、提升效率是大趋势,注意也不要过于依赖。 2024年12月18日,GitHub 官方宣布了一个激动人心的重大消息&#xf…

数字经济下的 AR 眼镜

目录 1. 📂 AR 眼镜发展历史 1.1 AR 眼镜相关概念 1.2 市面主流 XR 眼镜 1.3 AR 眼镜大事记 1.4 国内外 XR 眼镜 1.5 国内 AR 眼镜四小龙 2. 🔱 关键技术 2.1 AR 眼镜近眼显示原理 2.2 AR 眼镜关键技术 2.3 AR 眼镜技术难点 3. &#x1f4a…

LabVIEW深海气密采水器测控系统

LabVIEW的深海气密采水器测控系统通过高性价比的硬件选择与自主开发的软件,实现了高精度的温度、盐度和深度测量,并在实际海上试验中得到了有效验证。 项目背景 深海气密采水器是进行海底科学研究的关键工具,用LabVIEW开发了一套测控系统&am…

RocketMQ的集群架构是怎样的?

大家好,我是锋哥。今天分享关于【RocketMQ的集群架构是怎样的?】面试题。希望对大家有帮助; RocketMQ的集群架构是怎样的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RocketMQ 是阿里巴巴开源的分布式消息中间件,广泛用于处…

【Rust自学】4.5. 切片(Slice)

4.5.0. 写在正文之前 这是第四章的最后一篇文章了,在这里也顺便对这章做一个总结: 所有权、借用和切片的概念确保 Rust 程序在编译时的内存安全。 Rust语言让程序员能够以与其他系统编程语言相同的方式控制内存使用情况,但是当数据所有者超…

AI的进阶之路:从机器学习到深度学习的演变(一)

AI的进阶之路:从机器学习到深度学习的演变 在当今科技迅猛发展的时代,人工智能(AI)、机器学习(ML)和深度学习(DL)已成为推动创新的核心力量。这三个领域虽然紧密相连,却…

《算法》题目

多项选择题 2023年2月,美国国家标准与技术研究院(NIST)将 Ascon算法确立为轻量级加密(LWC)标准,关于该算法和标准的说法,正确的是( )。 A.该标准属于国际标准 B.该标准旨在保护物联网(IoT)创建和传输的信息 C.通过法律法规规范标准化机构的职责与权限,可以起到推动技…

Git配置公钥步骤

GIt公钥的配置去除了git push输入账号密码的过程,简化了push流程。 1.生成SSH公钥和私钥 ssh-keygen -t rsa -b 4096 -C “your_emailexample.com” 遇到的所有选项都按回车按默认处理。获得的公钥私钥路径如下: 公钥路径 : ~/.ssh/id_rsa.pub 私钥路径…

Mysql的多表查询及表的连接

Mysql的多表查询及表连接 目录 Mysql的多表查询及表连接连接查询条件有关联的表的连接natural joinusingon等值连接非等值连接 表与表的外连接左外连接右外连接 表的自连接表的子连接表的伪表查询 连接查询条件 查询的两张表如果出现同名的列,我们需要将表名标注到列…

移动魔百盒中的 OpenWrt作为旁路由 安装Tailscale并配置子网路由实现在外面通过家里的局域网ip访问内网设备

移动魔百盒中的 OpenWrt作为旁路由 安装Tailscale并配置子网路由实现在外面通过家里的局域网ip访问内网设备 一、前提条件 确保路由器硬件支持: OpenWrt 路由器需要足够的存储空间和 CPU 性能来运行 Tailscale。确保设备架构支持 Tailscale 二进制文件,例…

每天40分玩转Django:Django部署

Django部署 一、今日学习内容概述 学习模块重要程度主要内容生产环境配置⭐⭐⭐⭐⭐settings配置、环境变量WSGI服务器⭐⭐⭐⭐⭐Gunicorn配置、性能优化Nginx配置⭐⭐⭐⭐反向代理、静态文件安全设置⭐⭐⭐⭐⭐SSL证书、安全选项 二、生产环境配置 2.1 项目结构调整 mypr…

CVPR2024 | 通过集成渐近正态分布学习实现强可迁移对抗攻击

Strong Transferable Adversarial Attacks via Ensembled Asymptotically Normal Distribution Learning 摘要-Abstract引言-Introduction相关工作及前期准备-Related Work and Preliminaries1. 黑盒对抗攻击2. SGD的渐近正态性 提出的方法-Proposed Method随机 BIM 的渐近正态…