当前位置 博文首页 > Python实现淘宝秒杀功能的示例代码

    Python实现淘宝秒杀功能的示例代码

    作者:oJiuJieZhong 时间:2021-02-06 06:19

    1.安装 Selenium 模块

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

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

    2. 插件 FireBug

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

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

    在这里插入图片描述

    3.安装 geckodriver

    下载地址:点击此下载


    下载完成后,将文件夹解压到python下scripts中即可

    在这里插入图片描述


    测试:在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: ①注意此版本代码为扫码登陆,如果觉得扫码等待时间过快,可以调整, ②秒杀前需要提前运行代码

    js
    下一篇:没有了