Python实现淘宝秒杀

时间:2021-1-18 作者:admin

1.安装 Selenium 模块。

Selenium支持很多浏览器,我选择的是Firefox浏览器。


安装方法:
①打开cmd;
②输入命令 pip install selenium;
③回车,等待自动安装;
④当最后一行代码出现Successfully install selenium-XX时,表示安装成功。

2. 插件 FireBug

FireBug 是火狐浏览器的一款查看代码元素的插件,可以快速的定位元素,selenium的重点就是元素定位,只有定到位了,才能进行下一步操作。

测试安装成功,按F12出现如下画面,表示firebug已经安装成功了
(现在浏览器基本都自带,可以忽略本步骤)

Python实现淘宝秒杀

3.安装 geckodriver

下载地址:点击此下载


下载完成后,将文件夹解压到python下scripts中即可
Python实现淘宝秒杀


测试:在pycharm中输入以下代码,正常弹出百度窗口,即为成功

from selenium import webdriver 
driver = webdriver.Firefox() 
driver.get('https://www.baidu.com')

**

4.淘宝秒杀代码

**

from selenium import webdriver
import datetime
import time
from os import path

d = path.dirname(__file__)
abspath = path.abspath(d)

driver = webdriver.Firefox()
driver.maximize_window()


def login():
  # 打开淘宝登录页,并进行扫码登录
  driver.get("https://www.taobao.com")
  time.sleep(3)
  if driver.find_element_by_link_text("亲,请登录"):
    driver.find_element_by_link_text("亲,请登录").click()

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

  driver.get("https://cart.taobao.com/cart.htm")
  time.sleep(3)
  # 点击购物车里全选按钮
  # if driver.find_element_by_id("J_CheckBox_939775250537"):
  # driver.find_element_by_id("J_CheckBox_939775250537").click()
  # if driver.find_element_by_id("J_CheckBox_939558169627"):
  # driver.find_element_by_id("J_CheckBox_939558169627").click()
  if driver.find_element_by_id("J_SelectAll1"):
    driver.find_element_by_id("J_SelectAll1").click()
  now = datetime.datetime.now()
  print('login success:', now.strftime('%Y-%m-%d %H:%M:%S'))


def buy(buytime):
  while True:
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
  # 对比时间,时间到的话就点击结算
    if now > buytime:
     try:
        # 点击结算按钮
        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(0.1)
      print(now)
      time.sleep(0.1)


if __name__ == "__main__":
  # times = input("请输入抢购时间:")
  # 时间格式:"2018-09-06 11:20:00.000000"
  login()
  buy("2021-01-16 15:08:00.000000")

ps:

①注意此版本代码为扫码登陆,如果觉得扫码等待时间过快,可以调整,

②秒杀前需要提前运行代码

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。