环境介绍:Python 3.9.1

自行下载appium和相关依赖

本代码是无聊写的,运行也正常,但是就是抢不到,抢票需要天时,地利,人和,不要用UI最好

我链接的是夜神虚拟模拟器

import os
from appium import webdriver
import timefrom selenium.webdriver.common.by import Bydef get_size(driver):x = driver.get_window_size()['width']y = driver.get_window_size()['height']return x, ydef swipe_down(driver, t):"""滑动时X轴不变,Y轴由小到大"""screensize = get_size(driver)x1 = int(screensize[0] * 0.5)  # x坐标y1 = int(screensize[1] * 0.25)  # 起始y坐标y2 = int(screensize[1] * 0.75)  # 终点y坐标driver.swipe(x1, y1, x1, y2, t)heard = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}desired_caps = {"platformName": "Android","platformVersion": "7.1.3","appPackage": "cn.damai","appActivity": "cn.damai.search.v2.SearchActivity","noReset": True,"adbExecTimeout": 200000,"headers": heard
}
# name = "作者"
# concert_name = "【北京】DEADLINE 小鬼-作者2023巡回演唱会-北京站"
# session = '2023-06-03 周六 19:00'
# money = '看台1580元'name = "作者"
concert_name = "武汉站"
session = '2023-06-25 周日 19:00'
money = '看台855'try:driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)  ##启动服务器地址,后面跟的是手机信息driver.implicitly_wait(8)print("开始输入……")driver.find_element(By.ID, "cn.damai:id/header_search_v2_input").send_keys(name)driver.find_element(By.XPATH, '//android.widget.TextView[@text="{}"]'.format(name)).click()time.sleep(0.5)#获取演唱会场次# try:#     print('点击场次')  # 但是时间点长#     driver.find_element(By.XPATH, "//*[@text='{}']".format(concert_name)).click()# except:#     print('点击场次')#需要手动配置#     driver.tap([(186, 280), (864, 364)], 300)# driver.tap([(186, 280), (864, 364)], 300)time.sleep(1)#获取当前是否能够购买,如果能够购买直接进入sell_status = driver.find_element(By.ID, "cn.damai:id/tv_left_main_text").textwhile True:print('现在售票状态处于:{}中....'.format(sell_status))if sell_status.strip() == '立即预定' or sell_status.strip() == '立即购买':driver.find_element(By.ID, "cn.damai:id/tv_left_main_text").click()breakelse:# 点击立即购买swipe_down(driver, 200)# time.sleep(0.1)sell_status = driver.find_element(By.ID, "cn.damai:id/tv_left_main_text").texttime.sleep(0.5)#选择场次try:while True:driver.find_element(By.XPATH, "//android.widget.TextView[@text='{}']".format(session)).click()time.sleep(0.1)driver.find_element(By.XPATH, "//android.widget.TextView[@text='{}']".format(money)).click()#点击立即确定driver.tap([(354, 1496), (546, 1584)], 300)time.sleep(0.1)try:driver.find_element(By.ID,"cn.damai:id/damai_theme_dialog_confirm_btn")driver.find_element(By.ID, "cn.damai:id/damai_theme_dialog_confirm_btn").click()time.sleep(0.5)except:break#处理票价# num = 1# while num > 1:#     driver.find_element(By.ID, "cn.damai:id/img_jia").click()#     num -= 1# driver.tap([(450, 1496), (858, 1584)], 300)# driver.find_element(By.XPATH, '//android.widget.TextView[@text="马茂财"]').click()# try:#     driver.find_element(By.XPATH,'//android.widget.TextView[@text="支付宝"]').click()# except:#     pass#点击确定driver.tap([(658, 1500), (858, 1580)], 300)except:driver.find_element(By.ID, "cn.damai:id/damai_theme_dialog_cancel_btn']").click()driver.tap([(354, 1496), (546, 1584)], 300)time.sleep(0.5)# try:#     driver.find_element(By.XPATH, '//android.widget.TextView[@text="预留身份证信息"]')# except:#处理票价# num = 1# while num > 1:#     driver.find_element(By.ID, "cn.damai:id/img_jia").click()#     num -= 1driver.tap([(450, 1496), (858, 1584)], 300)# driver.find_element(By.XPATH, '//android.widget.TextView[@text="预留身份证信息"]').click()# try:#     driver.find_element(By.XPATH,'//android.widget.TextView[@text="支付宝"]').click()# except:#     pass#点击确定driver.tap([(658, 1500), (858, 1580)], 300)except Exception as e:raise Exception(e)finally:os.system("adb uninstall io.appium.settings")# os.system("adb uninstall io.appium.unlock")# driver.quit()

大麦抢票-Appium实现抢票软件相关推荐

  1. 5.1特辑 | 为什么显示有票你却抢不到?技术揭秘12306如何保证车票不超卖

    五一抢票,靠的可不仅是运气哦!点击查看,为你揭开背后的关键技术~~ 本文分享自华为云社区<5.1特辑 | 为什么显示有票你却抢不到?技术揭秘12306如何保证车票不超卖>,原文作者:技术火 ...

  2. python制作自动抢票_python自动抢票

    # -*- coding: utf-8 -*- from splinter.browser import Browser from time import sleep import traceback ...

  3. 多线程抢票_多线程抢票案例

    说明: 利用多线程对网络抢票进行模拟演示. 技术点: (1)实现Runnable接口 (2)重写run方法 (3)创建Thread对象调用start()方法 (4)线程锁 (5)线程休眠 packag ...

  4. python github 12306 文贤平_全网最牛掰的12306抢票神器,助力抢到春节回家的票

    ↑↑↑点击上方"蓝字",关注"极客猴" 如果你喜欢极客猴,可以把我置顶或加为星标 选自<量子位> 作者:车栗子 来源:凹非寺 阅读文本大概需要 3 ...

  5. 全网最牛掰的 12306 抢票神器,助力抢到春节回家的票

    " 阅读本文大概需要 5 分钟. " 选自<量子位> 作者:车栗子 来源:凹非寺 一年一度的"全球罕见的人口流动现象" - 春运"即将到来 ...

  6. HTML5编写抢高铁票,Python3实现抢火车票功能(中)

    下载W3Cschool手机App,0基础随时随地学编程>>戳此了解 导语 在"python抢火车票(上)"一文中我们完成了项目内容1和项目内容2,即利用python实现 ...

  7. 全网最牛的12306抢票神器,助力抢到春节回家的票

    " 阅读本文大概需要 5 分钟. " 你们心心念念的抢票攻略来了! 选自<量子位> 作者:车栗子 来源:凹非寺 一年一度的"全球罕见的人口流动现象" ...

  8. 上海铁路局电话订票和网上订票流程/指南

    上海铁路局电话订票和网上订票流程/指南 一.上海铁路局管辖铁路及主要车站 主要管辖上海市.浙江省.江苏省和安徽省铁路. 主要客运车站:鳌江.苍南.奉化.杭州.杭州南.江山.金华南.金华西.缙云.兰溪. ...

  9. 用python抢火车票_Python3实现抢火车票功能(中)

    导语 在"python抢火车票(上)"一文中我们完成了项目内容1和项目内容2,即利用python实现火车/高铁票查询功能以及利用python实现抢火车/高铁票功能,对项目内容1和项 ...

最新文章

  1. idea 创建 Maven+Hibernate项目
  2. java.lang.NoClassDefFoundError Adding a jar to an RCP application
  3. sublime text3安装python插件和flake8_让你的代码符合PEP8标准——sublime text 2 安装及使用 Python Flake8 Lint 插件...
  4. 《系统集成项目管理工程师》必背100个知识点-21监控项目工作ITTO
  5. 分支和循环_月隐学python第5课
  6. 一文说通Blazor for Server-Side的项目结构
  7. P2408- 不同子串个数【SA】
  8. java处理请求的流程_Java Spring mvc请求处理流程详解
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的线上电器商城
  10. CompletableFuture 详解
  11. 利用 Google Chart API 生成二维码大小不一致
  12. python数据标注工具_数据标注|分享9个数据标注工具
  13. C++-柱面拟合FitCylinder
  14. 彩色图像和灰色图像的区别
  15. Chromium源码中 media::VideoFrame 的3个属性(coded_size, visible_rect, natual_size)的理解
  16. Apache Log4j使用实例
  17. 苏嵌//张福辉//2018.7.13
  18. SQL Server DeadLock 分析
  19. Python+tkinter+Treeview模拟表格并设置字体和颜色
  20. ie浏览器能显示ftp协议的图片_浏览器向服务器请求一张图片,到底发生了什么?...

热门文章

  1. DelayQueue实例和源码解析
  2. springboot增加elasticsearch7.x
  3. Nutanix:疫情中积极前行,推动企业向云转型
  4. 2023华为od机试真题B卷【文件目录大小】Java 【100%通过率】
  5. 2D半头身卡通游戏角色+RPG横版拼贴地图+游戏图标素材资源合集
  6. android仿陌陌tab,uniapp直播室|仿抖音视频|nvue+uniapp高仿陌陌直播
  7. 基于JAVA点餐系统设计计算机毕业设计源码+系统+lw文档+部署
  8. 【路径规划-VRP问题】基于模拟退火 (SA)求解车辆配送 (VPR)附Matlab代码
  9. 【docker 可视化管理工具-DockerUI】
  10. IOS 计算两个时区之间的时间差