环境介绍: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. Linux虚拟内存,你理解到位了?
  2. 命令行终端神器,你值得拥有
  3. BinaryWriter和BinaryReader用法
  4. QT的QAudioInput类的使用
  5. java 类的高级特性_java程序-类的高级特性
  6. ORACLE 添加和查看注释
  7. 计算机论文的致谢部分写什么,毕业论文致谢部分怎么写-论文致谢部分如何写在线等请问毕业论文最后一部分致谢要怎么写呀. 爱问知识人...
  8. caffe的运行create_data.sh前对VOC2007图片格式的更改
  9. php wiki搭建,wiki网站搭建
  10. 《浪潮之巅》读书笔记3
  11. ubuntu 18.04安装搜狗输入法
  12. 用 SIR 模型拟合疫情感染情况
  13. 什么是CMMI能力成熟度模型?企业为什么要做?
  14. oem10g grid control
  15. mac外接显示器 竖屏 黑苹果_解决黑苹果HD3000核显 VGA和HDMI外接显示器无反应问题...
  16. 青海计算机三级成绩查询,2013青海计算机三级成绩查询系统
  17. C. Mortal Kombat Tower(cf)dp
  18. 德州达拉斯大学计算机录取要求,德克萨斯大学达拉斯分校申请条件(德克萨斯大...
  19. Installshield 安装包安装过程中遇到的报错(一)
  20. linux查看指定目录下各个文件大小以及总体大小

热门文章

  1. 外挂制作通用步骤---通过读取窗口-获取进程
  2. 直通车助流量飙升【干货实操】
  3. 帆软日期格式转换_FineReport----日期处理
  4. TrWebOCR开源的离线OCR
  5. 关于fgetc,getc,getchar和scanf的一些小知识
  6. iskysoft中文版_使用iSkysoft Toolbox轻松实现iOS数据恢复:几秒钟内恢复丢失的数据...
  7. 如何让用户感知产品的价值?
  8. mysql数据库的lls_初识网络安全及搭建网站(内网)(示例代码)
  9. 借助江苏电信欢go进行流量推广活动合作的工作规范(一)
  10. ORACLE_错误代码