python+selenium小米商城红米K40手机自动抢购的示例代码


Posted in Python onMarch 24, 2021

使用环境

1、python3
2、selenium

selenium使用简述

1、安装selenium

pip install selenium

2、安装ChromeDriver

下载地址:http://chromedriver.storage.googleapis.com/index.html

注意:下载的ChromeDriver需要与Chrome版本一致。

1)Chrome版本查看:

python+selenium小米商城红米K40手机自动抢购的示例代码

2)ChromeDriver对应版本下载:

python+selenium小米商城红米K40手机自动抢购的示例代码

3)ChromeDriver下载后解压到任意文件夹,建议可以放到项目目录中,拷贝chromedriver可执行文件的路径,代码中需要用到:

代码实现

from selenium import webdriver
import time
import datetime
 
 
class XiaoMi():
  def __init__(self):
    self.name = "" #登陆小米商城用户名
    self.pwd = "" #登陆小米商城密码
    self.buytime = "2021-03-12 10:00:00" # 指定秒杀时间,并且开始等待秒杀
    self.chrome_driver = "" #chromedriver的文件位置 例如:self.chrome_driver = 'C:/Desktop/lib/chromedriver.exe' 
 
    self.browser = webdriver.Chrome(executable_path = self.chrome_driver)
 
  def login(self):
    self.browser.get('https://account.xiaomi.com/') # 登录网址
    time.sleep(2)
 
    self.browser.find_element_by_name("account").send_keys(self.name)
    self.browser.find_element_by_name("password").send_keys(self.pwd)
    self.browser.find_element_by_xpath('//*[@type="submit"]').click()
    time.sleep(3)
    #抢购红米K40
    self.buy_on_time()
 
  #抢手机红米K40
  def buy_on_time(self):
    self.browser.get("https://www.mi.com/buy/detail?product_id=13544") # 切换到秒杀页面
    time.sleep(2)
    self.browser.find_element_by_xpath('//div[@class="sale-btn"]/a').click() # 再次登陆
    time.sleep(2)
    self.browser.find_element_by_xpath("//div[@class='option-box']/ul/li[4]").click() # 选择12G+256G版本
    print('登录成功,正在等待抢购···')
 
    while True: # 不断刷新时钟
      now = datetime.datetime.now()
      if now.strftime('%Y-%m-%d %H:%M:%S') == self.buytime:
        self.browser.find_element_by_xpath('//div[@class="sale-btn"]/a').click() # 购买按钮的Xpath
        print('下单成功,请抓紧付款!')
      time.sleep(0.01) # 注意刷新间隔时间要尽量短
 
if __name__ == '__main__':
  MS = XiaoMi()
  MS.login()
Python 相关文章推荐
python计算方程式根的方法
May 07 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
让Python更加充分的使用Sqlite3
Dec 11 Python
浅谈python写入大量文件的问题
Nov 09 Python
python实现栅栏加解密 支持密钥加密
Mar 20 Python
Django框架models使用group by详解
Mar 11 Python
Softmax函数原理及Python实现过程解析
May 22 Python
使用K.function()调试keras操作
Jun 17 Python
python文件及目录操作代码汇总
Jul 08 Python
Pycharm 跳转回之前所在页面的操作
Feb 05 Python
python plt.plot bar 如何设置绘图尺寸大小
Jun 01 Python
python使用matplotlib绘制图片时x轴的刻度处理
Aug 30 Python
Python使用openpyxl复制整张sheet
Mar 24 #Python
基于Python 函数和方法的区别说明
Mar 24 #Python
Pytorch之扩充tensor的操作
Mar 04 #Python
快速一键生成Python爬虫请求头
Mar 04 #Python
10个顶级Python实用库推荐
Mar 04 #Python
pytorch 把图片数据转化成tensor的操作
Mar 04 #Python
pytorch 计算Parameter和FLOP的操作
Mar 04 #Python
You might like
php 判断服务器操作系统的类型
2014/02/17 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
javascript中的3种继承实现方法
2016/01/27 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
Layui 数据表格批量删除和多条件搜索的实例
2019/09/04 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
python网络编程之文件下载实例分析
2015/05/20 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
理工大学毕业生自荐信
2013/11/01 职场文书
让世界充满爱演讲稿
2014/05/24 职场文书
关爱老人标语
2014/06/21 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android