python | 大麦网抢票(移动端)

简介: 上篇文章写到了使用windows11打开安卓应用,那么使用python来抢大麦网票应该也是可以的吧。库使用的是`pyautogui`。

上篇文章写到了使用windows11打开安卓应用,那么使用python来抢大麦网票应该也是可以的吧。库使用的是pyautogui

pyautogui

简单的了解了下,这个库就是PythonGUI自动化工具库,可以操作鼠标和键盘完成一系列动作,发现做测试的时候,不仅可以使用他来做功能测试,还可以做UI测试。

代码

import pyautogui
import time

time.sleep(3)

# 立即购买
def buy(img):
    while True:
        # 查找有没有立即购买的按钮
        buyBtn = pyautogui.locateOnScreen(img)
        print(buyBtn)
        if buyBtn is not None:
            pyautogui.click(buyBtn.left + buyBtn.width/2, buyBtn.top+buyBtn.height/2)
            break
        time.sleep(0.001)

# 选择价格
def price(img):
    while True:
        price = pyautogui.locateOnScreen(img)
        print(price)
        if price is not None:
            pyautogui.click(price.left + price.width/2, price.top+price.height/2)
            break
        time.sleep(0.001)

# 选择购买票数,一个不用这个函数,两票用一次,三票用两次
def add(img):
    addBtn = pyautogui.locateOnScreen(img)
    if addBtn is not None:
        # 点击一下,买两张
        pyautogui.click(addBtn.left + addBtn.width/2, addBtn.top+addBtn.height/2)

# 下单
def enter(img):
    enterBtn = pyautogui.locateOnScreen(img)
    if enterBtn is not None:
        pyautogui.click(enterBtn.left + enterBtn.width/2, enterBtn.top+enterBtn.height/2)

# 选择人员
def check(img):
    while True:
        checkBtn = pyautogui.locateOnScreen(img)
        print(checkBtn)
        if checkBtn is not None:
            pyautogui.click(checkBtn.left + checkBtn.width/2, checkBtn.top+checkBtn.height/2)
            break
        time.sleep(0.001)

# 添加其他人,不需要循环查找,节省时间
def checkOther(img):
    checkOtherBtn = pyautogui.locateOnScreen(img)
    print(checkOtherBtn)
    if checkOtherBtn is not None:
        pyautogui.click(checkOtherBtn.left + checkOtherBtn.width/2, checkOtherBtn.top+checkOtherBtn.height/2)

# 提交订单
def submit(img):
    submitBtn = pyautogui.locateOnScreen(img)
    print(submitBtn)
    if submitBtn is not None:
        pyautogui.click(submitBtn.left + submitBtn.width/2, submitBtn.top+submitBtn.height/2)


buy('./img/damai1.png')
price('./img/780.png')
add('./img/add.png')
enter('./img/enter.png')
check('./img/check.png')
checkOther('./img/check1.png')
submit('./img/submit.png')

说明

以上代码的图片为截图,比如大麦网购买截图啥的,举个例子,在购买的页面,有一个按钮叫做立即购买,所以截图这个区域即可,780是价格的截图,add是增加票数的截图,enter是购买的截图,check和check1是购买人的截图,submit是提交订单的截图。

以上图片都是保存在了img文件夹中。

以上代码可以实现抢票,但不能保证一定可以抢到,整个过程我看了下,因为是模拟操作,所以耗时还有有的,大概4秒的样子。当然,我可能后面写一个更快的,有时间再看吧。

相关文章
|
1月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
115 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
3月前
|
数据采集 JSON 数据格式
Python大麦网演唱会数据爬取
Python大麦网演唱会数据爬取
218 0
|
5月前
|
测试技术 数据安全/隐私保护 Python
大麦网抢票攻略:使用Python Selenium实现
大麦网抢票攻略:使用Python Selenium实现
|
7月前
|
API Python
Python实现大麦网抢票的四大关键技术点解析
随着互联网的普及和发展,线上购票已经成为人们生活中不可或缺的一部分。然而,在抢购热门演出门票时,往往会遇到抢票难、抢票快的问题,有时候一秒钟的延迟就意味着与心仪的演出擦肩而过。为了解决这个问题,技术爱好者们开始探索利用Python多线程技术来提高抢票效率。本文将介绍Python实现大麦网抢票的四大关键技术点,帮助读者了解抢票脚本的核心原理,并通过示例代码详细说明实现过程。
|
7月前
|
数据采集 Python
Python零基础入门移动端爬虫班
《Python零基础入门移动端爬虫班》课程旨在帮助学习者从零开始学习Python编程,掌握移动端爬虫技术。通过简单易懂的教学内容,学员将学会如何利用Python编写爬虫程序,实现数据采集与分析,拓展在移动端应用的应用能力。
49 0
|
7月前
|
监控 安全 Java
【python实操】马上毕业了,你还不懂什么是守护线程、线程、进程?(附12306抢票程序-源代码)
【python实操】马上毕业了,你还不懂什么是守护线程、线程、进程?(附12306抢票程序-源代码)
83 0
使用Python编写一个多线程的12306抢票程序
使用Python编写一个多线程的12306抢票程序
|
数据采集 机器学习/深度学习 NoSQL
Python 抢火车票神器,支持候补抢票
Python 抢火车票神器,支持候补抢票
|
数据采集 机器学习/深度学习 NoSQL
火车票被秒光,别慌!快用Python来抢票!
火车票被秒光,别慌!快用Python来抢票!
|
23天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!