[python] view plain copyprint?

华为MATE10抢购源码,使用selenium+python+Chrome

大概流程:

1、按帐号生成多个线程开启浏览器

2、登陆帐号密码,有时需要验证码,此处有手动操作

3、不停刷新抢购页面,抢购按钮出现时选择规格提交订单

4、排队页面等待,直到不在排队

github:https://github.com/pengsd1991/python_buy_hw

[python] view plain copyprint?
  1. # -*- encoding:utf-8 -*-
  2. from selenium import webdriver
  3. from selenium.webdriver.common.keys import Keys
  4. import time
  5. from threading import Thread
  6. ACCOUNTS = {
  7. ”account1”:“password1”
  8. ”account2”:“password2”
  9. }
  10. #MATE10 抢购地址
  11. #BUY_URL = ‘https://www.vmall.com/product/396602535.html’
  12. #保时捷
  13. BUY_URL = ’https://www.vmall.com/product/173840389.html’
  14. #测试
  15. # BUY_URL = ‘https://www.vmall.com/product/144380118.html’
  16. #登录url
  17. LOGIN_URL = ’https://hwid1.vmall.com/CAS/portal/login.html?validated=true&themeName=red&service=https%3A%2F%2Fwww.vmall.com%2Faccount%2Facaslogin%3Furl%3Dhttps%253A%252F%252Fwww.vmall.com%252F&loginChannel=26000000&reqClientType=26&lang=zh-cn’
  18. #登录成功手动确认URL
  19. LOGIN_SUCCESS_CONFIRM = ’https://www.baidu.com/’
  20. #开始自动刷新等待抢购按钮出现的时间点,提前3分钟
  21. BEGIN_GO = ’2017-11-16 10:07:10’
  22. #进到购买页面后提交订单
  23. def submitOrder(driver,user):
  24. time.sleep(1)
  25. while BUY_URL == driver.current_url :
  26. print (user+‘:当前页面还在商品详情!!!’)
  27. time.sleep(3)
  28. while True:
  29. try:
  30. submitOrder = driver.find_element_by_link_text(’提交订单’)
  31. submitOrder.click()
  32. print (user+‘:成功提交订单’)
  33. break
  34. except :
  35. print (user+‘:提交不了订单!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!’)
  36. time.sleep(1)#到了订单提交页面提交不了订单一直等待
  37. pass
  38. while True:
  39. time.sleep(3000)
  40. print (user+‘:进入睡眠3000s’)
  41. pass
  42. #排队中
  43. def onQueue(driver,user):
  44. time.sleep(1)
  45. nowUrl = driver.current_url
  46. while True:
  47. try:
  48. tryAgain = driver.find_element_by_link_text(’再试一次’)
  49. tryAgain.click()
  50. print (user+‘:再试一次点击’)
  51. pass
  52. except :
  53. print (user+‘:排队中’)
  54. time.sleep(0.3)#排队中
  55. pass
  56. if nowUrl != driver.current_url:
  57. print (user+‘:排队页面跳转了!!!!!!!!!!!!!!’)
  58. break
  59. submitOrder(driver,user)
  60. #登录成功去到购买页面
  61. def goToBuy(driver,user):
  62. driver.get(BUY_URL)
  63. print (user+‘打开购买页面’)
  64. #转换成抢购时间戳
  65. timeArray = time.strptime(BEGIN_GO, ”%Y-%m-%d %H:%M:%S”)
  66. timestamp = time.mktime(timeArray)
  67. #未发现购买按钮
  68. no_found_bug = True
  69. while True:
  70. if time.time()>timestamp:#到了抢购时间
  71. try:
  72. buyButton = driver.find_element_by_link_text(’立即申购’)
  73. no_found_bug = False
  74. print (user+‘立即申购按钮出现了!!!’)
  75. #点击摩卡金
  76. # driver.find_element_by_xpath(‘//*[@id=”pro-skus”]/dl[1]/div/ul/li[2]/div/a/p/span’).click()
  77. #点击6gb+128gb
  78. # driver.find_element_by_xpath(‘//*[@id=”pro-skus”]/dl[3]/div/ul/li[2]/div/a/p/span’).click()
  79. buyButton.click()
  80. print (user+‘立即申购’)
  81. break
  82. except :
  83. if no_found_bug:
  84. time.sleep(0.3)
  85. if BUY_URL == driver.current_url :#还在当前页面自动刷新
  86. driver.get(BUY_URL)
  87. pass
  88. else:
  89. print(user+‘手动点击了申购’)
  90. break
  91. else:
  92. print (user+‘点击不了申购!!!!!!需要手动点击!!!!!’)
  93. time.sleep(0.5)
  94. if BUY_URL != driver.current_url :
  95. print(user+‘手动点击了申购’)
  96. break
  97. pass
  98. else:
  99. time.sleep(15)
  100. print (user+‘睡眠15s,未到脚本开启时间:’+BEGIN_GO)
  101. onQueue(driver,user)
  102. #登录商城,登陆成功后手动先访问baidu页面跳转至抢购页面
  103. def loginMall(user,pwd):
  104. driver = webdriver.Chrome()
  105. driver.get(LOGIN_URL)
  106. hasLogin = False
  107. try:
  108. account = driver.find_element_by_xpath(’//*[@id=”login_userName”]’)
  109. account.click()
  110. account.send_keys(user)
  111. time.sleep(1)
  112. password = driver.find_element_by_xpath(’//*[@id=”login_password”]’)
  113. password.click()
  114. password.send_keys(pwd)
  115. print (user+‘输入了账号密码,等待手动登录’)
  116. except :
  117. print (user+‘账号密码不能输入’)
  118. while True:
  119. time.sleep(3)
  120. if LOGIN_SUCCESS_CONFIRM == driver.current_url :
  121. print(user+‘登录成功!’)
  122. break
  123. goToBuy(driver,user)
  124. if __name__ == “__main__”:
  125. # 账号密码
  126. data = ACCOUNTS
  127. # 构建线程
  128. threads = []
  129. for account, pwd in data.items():
  130. t = Thread(target=loginMall,args=(account,pwd,))
  131. threads.append(t)
  132. # 启动所有线程
  133. for thr in threads:
  134. time.sleep(2)
  135. thr.start()
# -*- encoding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from threading import Thread

http://www.taodudu.cc/news/show-4412292.html

相关文章:

  • 并发抢购 java_【转】京东抢购服务高并发实践
  • 抢购秒杀场景
  • php抢购问题,PHP并发抢购解决方案
  • java抢购_java redis 实现抢购秒杀
  • 抢购
  • 京东抢购Python脚本
  • 安装navicat missing required library xxx.dll(libcc.dll libdd.dll)亲测有效
  • exe停止运行C语言,处理win7应用程序已停止“异常代码c0000005”的方法
  • C 语言调用 JNI_CreateJavaVM
  • C语言编程计算差商表,计算方法C语言编程计算方法C语言编程.doc
  • 论 致命错误c0000005
  • splitstring函数在C语言中的,C语言 字符串Split功能实现
  • c语言 --- 指针
  • C语言-解释复杂声明
  • FFT的C语言实现,对照MATLIB
  • 分析编程题c语言,二级C语言部分上机编程题详细分析
  • Linux上C语言程序编译过程详解
  • c语言性能测试库,C语言qsort函数算法性能测试
  • 编程c语言差商表,计算方法C语言编程总汇.doc
  • [c语言]0xC0000005访问冲突
  • c语言编程计算c上0下n,计算方法C语言编程讲解.doc
  • python36.dll 0xc000005_使用python运行时出现0xc000005错误
  • matlab polyfit c语言,算法——纯C语言最小二乘法曲线拟合
  • 0xC000005:Access Violation和指针强制转换问题
  • c0000005 Access Violation
  • C语言主函数返回值含义
  • win7运行c语言程序,win7打开程序弹出错误0xc000005的解决方法
  • 此计算机无法与域 cluster,创建0xc000005e群集时出现错误 - Windows Server | Microsoft Docs...
  • 致命错误:异常代码=C0000005(这篇最详细,收藏之~)
  • 前端知识点整理(待续)

selenium+python自动抢购源码相关推荐

  1. python自动下单源码_python+selenium实现淘宝双十一自动下单

    python+selenium实现淘宝双十一自动下单 # !/usr/bin/env python # 2020/05/20 # 淘宝秒杀脚本,扫码登录版 from selenium import w ...

  2. python自动下单源码_python selenium实现拼多多自动下单功能

    你需要把chrome.exe放置到python scripts 目录下,配置要全局变量 然后cmd 打开chrome.exe --remote-debugging-port=9222 --user-d ...

  3. python自动交易源码_【硬核福利】量化交易神器talib中28个技术指标的Python实现(附全部源码)...

    内容首发 乐学偶得(http://lexueoude.com) 公众号: 乐学Fintech 用代码理解分析解决金融问题 之前跟大家分享过用Python调用talib实现技术指标分析,但是许多小伙伴有 ...

  4. 【Python爬虫脚本】拒绝黄牛从我做起!Python自动抢购脚本,准点原价秒杀飞天茅台!!!

    前言 点击下方视频即可查看详细教程 [Python爬虫脚本]拒绝黄牛从我做起!Python自动抢购脚本,准点原价秒杀飞天茅台!!! 源码领取 上述这份完整版的源码课件已经上传CSDN官方,朋友们如果需 ...

  5. 彻底弄懂Python标准库源码(一)—— os模块

    目录 第1~22行 模块整体注释.nt与posix 第24~46行 模块引入._exists方法._get_exports_list方法 第48~97行 根据系统不同导入不同的方法和属性 第100~1 ...

  6. 【python】又拍云采集工具助手exe带python图片采集源码

    [python]又拍云采集工具助手exe带python图片采集源码 论坛的老哥要的东西!练手试了一下! 技术比较渣,见谅! 拿去玩! 适合想要获取 又拍云 相册图片的需求! 自己测试了一下,没有用多线 ...

  7. Selenium3 Python WebDriver API源码探析(19)加载FireFox用户配置文件

    FireFox用户配置文件 Firefox 将用户个人信息(例如书签.密码.首选项.扩展.Cookie.证书等)保存在一系列文件中,它们被叫做用户配置文件,它们与 Firefox 的程序文件保存在不同 ...

  8. 减少重复工作,通过 Annotation Processor 自动完成源码的生成

    背景: 类似 lombok.Data 解决了 bean 类的自动完成 setter/getter 方法,在 scrapy4j 框架实现过程中,发现 item 每次都需要人工编写,且编写内容除了属性和类 ...

  9. SpringBoot自动装配源码解析

    Spring Boot 自动装配原理 使用Spring Boot最方便的一点体验在于我们可以几零配置的搭建一个Spring Web项目,那么他是怎么做到不通过配置来对Bean完成注入的呢.这就要归功于 ...

最新文章

  1. poj 3131 双向搜索+hash判重
  2. 工作275:表单验证层级添加
  3. 刷题总结——xor(ssoj)
  4. linux查看iozone安装目录,使用IOzone测试磁盘性能
  5. Tweet button with a callback – How to?
  6. 如何找到网站服务器的源代码_如何花3-5分钟找到网站Bug?
  7. shell脚本定时重启tomcat
  8. 二维码的纠错码原理及细节
  9. 偶极子天线的优缺点_关于偶极子天线的若干问题。
  10. 简述WebS简述WebService与.NET Remoting的区别及适应场合
  11. Word 软回车和硬回车
  12. iOS App配置 Universal Link通用链接
  13. 北汽极狐ARCFOX与华为合作
  14. 一篇文章带你更深入了解区块链有哪些应用?
  15. BPFT1.7,全名BaiduPanFilesTransfers免费的百度网盘批量转存工具【精】
  16. Android实现真正的344格式化手机号码输入框
  17. 支持NTFS格式的Knoppix版本
  18. ORACLE 培训教程(1)
  19. 基于IP的设计学习1:ug896.一些基本概念
  20. [2022.10.30] Linux系统硬盘迁移方案

热门文章

  1. 下列不属于计算机未来发展趋势的是,1-9 关于计算机的发展趋势,下面哪种不是未来发展趋势 ____________ 。_学小易找答案...
  2. AI之AutoML:autosklearn/Auto-Sklearn(基于scikit-learn库的自动化的机器学习工具)的简介、安装、使用方法之详细攻略
  3. JS对于字符串的切割截取
  4. 一张图读懂极大极小搜索和α-β剪枝
  5. 极兔快递单号查询API
  6. qsort排序字符串
  7. Uber Go 语言编程规范:避免语义不明确的参数(Naked Parameters)
  8. 共享办公室租赁和传统写字楼之间,如何抉择
  9. html/css导入自己的字体样式
  10. HTTP 请求是什么?