当前位置:   article > 正文

大麦网抢票(2.0)版_怎么解决大麦网页不支持购买

怎么解决大麦网页不支持购买

绪论

近日小编同事很想去看某明星的演唱会,但苦于一票难求,同时网上的抢票代码和教程和目前的大麦网目前的网站抢票流程也有较大的变化,所以小编就想分享一下自己的抢票思路,希望大佬们多多指点。

一、源码实例如下

  1. #加载包
  2. from selenium import webdriver
  3. import time
  4. from selenium.common.exceptions import NoSuchElementException
  5. #输入你想抢票的网址;注:网站连接应从手机端复制连接(因为当前的网页大麦网不支持购票)
  6. url = 'https://m.damai.cn/damai/detail/item.html?utm=&itemId=720336645935&from=appshare'
  7. # 声明浏览器(这里用chrome浏览器)
  8. options = webdriver.ChromeOptions()
  9. # 就是这一行告诉chrome去掉了webdriver痕迹,令navigator.webdriver=false,极其关键
  10. options.add_argument("--disable-blink-features=AutomationControlled")
  11. # 还有其他options配置,此处和问题无关,略去
  12. browser = webdriver.Chrome(options=options)
  13. # get打开指定的url,传入要打开的url,以淘宝网为例
  14. browser.get(url)
  15. #延迟0.9秒执行代码
  16. time.sleep(0.9)
  17. browser.find_element("class name", 'buy__button').click() # 成功
  18. time.sleep(1)
  19. browser.find_element("class name","bui-dm-sku-card-item.item-normal-favor.theme-normal").click()
  20. time.sleep(0.5)
  21. browser.find_element("xpath","/html/body/div[6]/div[2]/div/div/div/div/div[3]/div[2]/div[1]").click()
  22. browser.find_element("class name",
  23. "bui-btn.bui-btn-contained.bui-btn-medium.sku-footer-buy-button."
  24. "full-width.normal.sku-footer-buy-button").click()
  25. #进入第二层嵌套页面;因为实际输入框存在于网页的嵌套页面所以必需进入第二层页面才能够点击到
  26. time.sleep(1.5)
  27. browser.switch_to.frame(0)
  28. time.sleep(2)
  29. browser.find_element("xpath",'//*[@id="login-form"]/div[5]/a[1]').click()
  30. time.sleep(2)
  31. browser.find_element("xpath", '//*[@id="fm-login-id"]').send_keys('18019159873') # 输入账号
  32. time.sleep(2)
  33. browser.find_element("xpath", '//*[@id="fm-login-password"]').send_keys('060301110-Gmh') # 输入账号
  34. time.sleep(2)
  35. browser.find_element("xpath",'//*[@id="login-form"]/div[4]/button').click()
  36. time.sleep(1)
  37. # 制作判断按钮和循环点击实现
  38. while True:
  39. try:
  40. browser.refresh()
  41. time.sleep(0.2)
  42. # 点击购买按钮
  43. browser.find_element("class name", 'buy__button').click() # 成功
  44. time.sleep(0.1)
  45. # 成功点击购买按钮后停留 1 秒,等待购买弹窗加载完成
  46. # 判断是否存在购买弹窗
  47. try:
  48. browser.find_element("class name", "bui-dm-sku-card-item.item-normal-favor.theme-normal").click()
  49. #继续购买
  50. time.sleep(0.1)
  51. try:
  52. browser.find_element("class name",
  53. "bui-btn.bui-btn-contained.bui-btn-medium.sku-footer-buy-button"
  54. ".full-width.normal.sku-footer-buy-button").click()
  55. time.sleep(0.1) # 选择人员
  56. browser.find_element("xpath",
  57. '//*[@id="dmViewerBlock_DmViewerBlock"]/div[2]/div/div[4]/div[3]/i').click() # 成功
  58. time.sleep(0.5) # 提交订单
  59. browser.find_element("xpath",
  60. '//*[@id="dmOrderSubmitBlock_DmOrderSubmitBlock"]/'
  61. 'div[2]/div/div[2]/div[3]/div[2]').click() # 成功
  62. break
  63. except:
  64. browser.refresh()
  65. time.sleep(0.1)
  66. pass
  67. except:
  68. pass
  69. except:
  70. print("进入循环")
  71. while True:
  72. try:
  73. browser.refresh()
  74. time.sleep(0.2)
  75. # 点击购买按钮
  76. browser.find_element("class name", 'buy__button').click() # 成功
  77. time.sleep(0.1)
  78. # 成功点击购买按钮后停留 1 秒,等待购买弹窗加载完成
  79. # 判断是否存在购买弹窗
  80. try:
  81. browser.find_element("class name", "bui-dm-sku-card-item.item-normal-favor.theme-normal").click()
  82. # 继续购买
  83. time.sleep(0.1)
  84. try:
  85. browser.find_element("class name",
  86. "bui-btn.bui-btn-contained.bui-btn-medium.sku-footer-buy-button"
  87. ".full-width.normal.sku-footer-buy-button").click()
  88. time.sleep(0.1) # 选择人员
  89. browser.find_element("xpath",
  90. '//*[@id="dmViewerBlock_DmViewerBlock"]/div[2]/div/div[4]/div[3]/i').click() # 成功
  91. time.sleep(0.5) # 提交订单
  92. browser.find_element("xpath",
  93. '//*[@id="dmOrderSubmitBlock_DmOrderSubmitBlock"]/'
  94. 'div[2]/div/div[2]/div[3]/div[2]').click() # 成功
  95. break
  96. except:
  97. browser.refresh()
  98. time.sleep(0.1)
  99. pass
  100. except:
  101. pass
  102. except:
  103. print("进入内循环")
  104. break

二、程序编码成功后操作流程

        2.1 将源码转化为可执行程序

        为了方便没有python环境的用户执行抢票程序,将编码好的程序打包为一个.exe(可执行程序),使得双击则可在任何window系统上执行程序,具体操作流程如下链接如何将python代码转化为exe

        2.2 设置电脑定时执行exe程序(也可手动运行)

        手动运行:在开始抢票的前30秒开始运行程序,程序开始登录网站页面并开始自动刷新抢票。

        设置电脑自动运行程序:因为大麦网抢票需要在一定的时间限制内才能开始抢票,所以需要让计算机定时执行python代码,让电脑自动执行抢票程序。如何实现电脑自动定时运行程序,(游览的位置应该是小程序存放的地址)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/503105
推荐阅读
相关标签
  

闽ICP备14008679号