• 使用python实现京东抢购脚本


    环境:python3.7

    浏览器:火狐

    在python scripts文件夹下边放入相应版本的geckodriver

    本脚本只适用于可以提前把抢购商品加入购物车的场景

    cmd页面:

    pip install selenium
    pip install datetime

    事先需要把商品放入购物车,电脑时间和北京时间一致

    from selenium import webdriver
    import time
    import datetime

    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions
    from selenium.webdriver.support.wait import WebDriverWait

    webdriver = webdriver.Firefox()
    webdriver.maximize_window()
    webdriver.implicitly_wait(5)

    def buy_on_time(buytime):
    while True:
    now = datetime.datetime.now()
    title = webdriver.title()
    if now.strftime('%Y-%m-%d %H:%M:%S') == buytime:
    for i in range(1, 21): # 每隔0.2秒抢购一次,尝试抢购20次
    print(now.strftime('%Y-%m-%d %H:%M:%S'))
    print("第%d次抢购" % i)
    webdriver.find_element(By.CSS_SELECTOR,'.jdcheckbox').click() # 此处点击的是在购物车页面选中商品的按钮
                    webdriver.find_element_by_link_text("去结算").click()
    if (webdriver.title == title): # 如果检测到title发生改变,即点击成功,跳出循环
    time.sleep(0.2)
    else:
    break
    element = (By.LINK_TEXT,'提交订单')
    webdriver.execute_script('window.scrollTo(0, (document.body.scrollHeight)/2)') # 拉滚动轴到页面一半的位置
    WebDriverWait(webdriver,10).until(expected_conditions.element_to_be_clickable(element)) # 显示等待
    webdriver.find_element(*element).click()
    print('purchase success')
    quit()
    time.sleep(0.5)


    webdriver.get("https://cart.jd.com/cart?rd=0.9189005178170556") # 此为购物车网站
    webdriver.find_element(By.CSS_SELECTOR,'.login-btn').click() # 一般需要登录,此处点击的是去登录按钮
    time.sleep(10)  # 为了避免输入校验码绕过了输入登录账户密码的步骤,此处打开的是二维码页面,请在10秒内用手机app扫描登录,10秒觉得不够可以改成20
    buy_on_time("2019-04-11 18:08:00") # 开始抢购时间
  • 相关阅读:
    !!!C#——进制转换!
    冒泡排序后用二分查找法查找位置
    简陋的4位验证码程序(范围内取随机数)
    这个年龄计算程序相当不科学,体验还是差差哒
    8.7课堂随笔
    字符串中查询关键字
    !汉企的WiFi网速好快
    重度强迫症患者的九九乘法表
    自选数字和范围的整除算法
    day52
  • 原文地址:https://www.cnblogs.com/yingyingdeyueer/p/10680741.html
Copyright © 2020-2023  润新知