首页 > 编程语言 >python淘宝抢购(自娱自乐)

python淘宝抢购(自娱自乐)

时间:2023-01-06 11:56:02浏览次数:44  
标签:自娱自乐 python 抢购 购物车 print element find browser

代码:

#! /usr/bin/python
# -*- coding: utf-8 -*-
import datetime
import time
from selenium import webdriver
import win32com.client
speaker = win32com.client.Dispatch("SAPI.SPVOICE")
import sys
#抢购时间
Rush_to_buyTime = "2022-12-10 10:00:00.0000"
"""
前提:需将抢购的商品提前添加到购物车
1.打开谷歌浏览器
2.打开购物车网址准备登录
3.检测购物车内是否有物品 有就全选
4.等待时间 到达指定时间点击结算
5.最后提交订单
"""
browser = webdriver.Chrome()
def webdriver():
  #淘宝购物车地址 需登录
  browser.get("https://cart.taobao.com/cart.htm")
  time.sleep(20)
  #全选购物车内的商品
  while True:
    try:
      if browser.find_element_by_id("J_SelectAll1"): #判断是否有全选按钮
        browser.find_element_by_id("J_SelectAll1").click() #点击全选按钮
        break
    except:
      print("检测购物车中没有任何商品,请将需抢购物品添加至购物车!")
      sys.exit() #退出程序
  pass
  while True:
    currentTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') #当前系统时间
    print("当前时间:" + str(currentTime))
    if currentTime > Rush_to_buyTime: #判断是否到达时间 到达抢购时间则点击结算按钮 并且提交订单
      while True:
        try:
          if browser.find_element_by_link_text("结 算"):
            browser.find_element_by_link_text("结 算").click()
            time.sleep(4)
          if browser.find_element_by_link_text("提交订单"):
            browser.find_element_by_link_text("提交订单").click()
            print("抢购成功!")
            break
          else:
            print("抢购失败了~~")
            break
        except Exception as e:
          print("程序结束~~~")
          sys.exit()

    else:
      continue
# 判断抢购时间是否已超过
if Rush_to_buyTime > datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'):
  webdriver()
else:
  print("已超过商品抢购的时间!")

 

 

注意事项:

webdriver打开谷歌浏览器需对应谷歌浏览器版本的驱动
如遇报错:selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.的解决办法;
1.打开谷歌浏览器, 在地址栏输入 chrome://version/ 查看版本信息;
2. 看到自己浏览器的版本号后,下载相对应版本的谷歌浏览器驱动(地址:http://chromedriver.storage.googleapis.com/index.html);
5.把解压后的chromedriver.exe文件放入python的安装目录下;例如: C:\Python27;

标签:自娱自乐,python,抢购,购物车,print,element,find,browser
From: https://www.cnblogs.com/qu-xiaofeng/p/17030031.html

相关文章

  • 『中级篇』docker之CI/CD持续集成—真实Python项目的CI演示(72)
    ​上次主要说了在githubCI的服务器,并且也演示了github的runner执行CICD,这次通过真实的python项目来演示下CICD。项目通过gitlab和gitlabCI进行CICD。源码地址:​​​https:/......
  • python网络爬虫(二)
    今天看了网络爬虫爬取图片的内容,主要是讲利用正则匹配爬图片。Day3-3.正则解析案例01_哔哩哔哩_bilibili所以就想着用学到的内容去试一下,我直接用这个方法去爬B站的图......
  • 【Python】traceback使用
    traceback使用importtracebackimportosfrompathlibimportPathfromioimportStringIOfp=StringIO()#使用内存try:print('---------')int('abc......
  • 使用python编写端口扫描工具
    端口扫描工具编写目录端口扫描工具编写0x01:实现端口扫描的方式一、TCP扫描:二、SYN扫描:三、UDP扫描:0x02:使用python实现端口扫描一、使用socket库的connect()方法扫描1、核......
  • 【Python】pandas 读取,保存数据
    pandas读取/保存数据importpandasaspdfile=r''df=pd.read_excel(file)df_columns=df.columns.to_list()#字段名listredundant_column=['name','age......
  • python-面向对象
    1.什么是面向对象编程面向过程编程:是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程。面向对象编程:是一种计算机编程架构,以对象为中心的编......
  • python-异常处理
    1.python-异常处理什么是异常?顾名思义,异常就是程序因为某种原因无法正常工作了,比如缩进错误、缺少软件包、环境错误、连接超时等都会引发异常。一个健壮的程序应该把......
  • python-自定义模块及导入方法
    1.自定义模块​ 一个较大的程序一般应分为若干个程序块,若个程序块称为模块,每个模块用来实现一部分特定的功能。​ 这样做的目的是为了将代码有组织的存放在一起,方便管......
  • python-函数-作用域
    1.作用域作用域:限制一个变量或一段代码可用范围,好处是提高了城乡逻辑局部性,减少名字冲突作用域结构图:Local(局部作用域):在函数中定义的变量,def关键字定义的语句块......
  • python-函数-常用内建函数
    1.函数-常用内建函数内建函数python解释器内置了很多函数,你可用直接使用它们在前面学习过的内建函数有:print()、len()、open()、range()内建函数描述map()......