首页 > 编程语言 >Python 实现抢购脚本--Mac 环境

Python 实现抢购脚本--Mac 环境

时间:2023-10-26 11:35:44浏览次数:22  
标签:登录 Python driver element click -- Mac now find

说明

介绍

该脚本使用Selenium库来实现自动登录并在指定的时间购买商品。

运行前准备

mac 的safari浏览器本身已经集成了safaridriver,只要启用并开启即可,步骤如下:

  1. 终端启用safaridriver:

    sudo safaridriver --enable
  2. 尝试运行safraidriver,看是否有权限问题。

    /usr/bin/safaridriver

环境依赖

  • Python 版本: 3.9.6

此脚本使用以下Python库:

  • Selenium

您可以使用以下命令来安装依赖:

pip install selenium
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple #当无法下载时可以使用清华源

代码

from selenium import webdriver
from selenium.webdriver.common.by import By
import datetime
import time

# 启动浏览器的驱动器
driver = webdriver.Safari()
# 最大化浏览器
driver.maximize_window()

# 传入用户名密码,登录
def login():
   # 打开
   driver.get("https://www.?.com")

   # 查找文本,登录
   if driver.find_element(By.LINK_TEXT, "亲,请登录"):
       driver.find_element(By.LINK_TEXT, "亲,请登录").click()
   """# 查找文本,登录
  if driver.find_element_by_link_text("亲,请登录"):
      driver.find_element_by_link_text("亲,请登录").click()"""

   print("请在30秒内完成扫码")
   time.sleep(30)

   driver.get("https://cart.taobao.com/cart.htm")
   time.sleep(3)

   # 点击购物车里全选按钮
   if driver.find_element(By.ID, "J_SelectAll1"):
       driver.find_element(By.ID, "J_SelectAll1").click()
   time.sleep(3)
   now = datetime.datetime.now()
   print('login success:', now.strftime('%Y-%m-%d %H:%M:%S'))

# 将商品添加到购物车的函数,需要根据商品链接或关键词来修改
def add_to_cart():
   # TODO: 编写代码将商品添加到购物车
   pass

def buy(buytime):
   while True:
       now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
       if now == buytime:
           try:
               # 调用将商品添加到购物车的函数
               add_to_cart()
               # 点击结算按钮
               if driver.find_element(By.ID,"J_Go"):
                   driver.find_element(By.ID,"J_Go").click()
               driver.find_element(By.LINK_TEXT,"提交订单").click()
               """if driver.find_element_by_id("J_Go"):
                  driver.find_element_by_id("J_Go").click()
              driver.find_element_by_link_text('提交订单').click()"""
           except:
               time.sleep(1)
       print(now)
       time.sleep(1)

if __name__ == "__main__":
   # 登录
   login()
   # 设置抢购时间
   buy('2023-10-23 11:08:05')

代码运行

将代码保存为.py 文件 并在命令行中运行(确保运行目录下包含此文件)

python3 tb.py
 

标签:登录,Python,driver,element,click,--,Mac,now,find
From: https://www.cnblogs.com/Tenak/p/17788999.html

相关文章

  • mysql-关联查询 内连接 外连接(左外,右外,全连接) 交叉连接(迪卡积尔)
    mysql-关联查询关联查询:数据查询是Mysql数据库管理最重要的一个功能,关联查询是关系型数据库最主要的查询。包括内连接([inner]join…on),外连接(left/right[outer]join…on),全外连接,通过关联查询可实现多个表连接的条件关系查询得到预期结果。基本定义:[inner]join…on......
  • CF888D
    分析很容易想到从\(0\)开始枚举\(a_i\neqi\)的位置个数一直枚举到\(k\)计算每种情况下的答案加在一起即为答案。对于\(k\)确定的情况,\(a_i=i\)的位置共有\(C_{n}^{n-k}\)种情况,剩下的位置要保证\(a_i\neqi\)。显然这是一个错排问题,因为\(k\)的值很小可以......
  • 基于 ElementUi框架的 table组件制作的 报表功能
    <template><!--月周计划报表--><divclass="monthPlanForm"><el-table:data="tableData":span-method="spanMethod"style="width:100%"><el-table-columntype="index"widt......
  • 常用正则
    开发中遇到的,常用的正则:正整数最多10位:/^[1-9][0-9]{0,9}$/1000以内正整数(严格匹配,不允许01):/^(?:1|[1-9][0-9][0-9]?|1000)$/1000以内正整数(非严格匹配,允许01):/^(?:[0-9]{1,3}|1000)$/正整数:/^[0-9]+$/10000以内正整数或小数点后两位(严格匹配,不允许01):/(^[1-9]([0-9]){1,4}\.......
  • 《Unix/linux系统编程》教材第4章学习笔记
    |第4章|并发编程并行计算导论基于分治原则(如二叉树查找和快速排序等)的算法经常表现出高度的行性,可通过使用并行或并发执行来提高计算速度。并行计算是一种计算方案,它尝试使用多个执行并行算法的处理器更快速地解决问题。顺序算法与并行算法用一个begin-end代码块列出代码......
  • 易基因: WGBS等从DNA甲基化揭示杀鲑气单胞菌灭活疫苗对大菱鲆的免疫力:抗性育种
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。DNA甲基化是表观遗传学中最重要的修饰之一,在免疫应答中发挥着重要作用。自引进大菱鲆(Scophthalmusmaximus,商品名:多宝鱼)以来,养殖规模不断扩大,其间各种细菌、病毒和寄生虫引起的疾病日益严重。因此,灭活疫苗以其独......
  • TestNG+Webdriver 页面自动化详解
    最近学习了一下TestNG+Webdriver的页面自动化,虽然中间遇到了很多问题,也走了不少弯路,不过最终还是运行起来了。下面就详细讲解一下,如何去配置环境及编写测试用例!环境配置1,eclipse+jkd的安装这是基本的开发环境,具体的配置在此就不累述了,网上有很多相关文档,请自行查阅。2,TestNG......
  • TestNG的基本传参使用
            万事开头难,其实开过头后也不容易。测试方面的技术好多啊,多的像天上的繁星,一.俩.仨.四个…在有限的时间里,想做最多的了解,只能从最实用的着手,去除教条式的金科玉律。于是,一个切入点蹦了出来,那就是介绍号称下一代Java测试技术的TestNG。其实这个nextgeneration也只......
  • LR录制https协议脚本前配置
    LR录制https安全协议脚本前的设置在IE中添加安全证书打开IE浏览器,选择“工具—Internet选项—内容”,点击“证书”导入相应的证书,如下图在LR中配置证书获取pem格式证书因为loadrunner只支持pem格式的证书,所以要将证书转换格式;这里就需要用到openssl工具,进入cmd命令窗口,进入openssl的......
  • Dubbo 路由及负载均衡性能优化
    作者:vivo互联网中间件团队-WangXiaochuang本文主要介绍在vivo内部针对Dubbo路由模块及负载均衡的一些优化手段,主要是异步化+缓存,可减少在RPC调用过程中路由及负载均衡的CPU消耗,极大提升调用效率。一、概要vivo内部Java技术栈业务使用的是ApacheDubbo框架,基于开源社区2.7.x版本......