python+selenium实现京东秒杀脚本

python+selenium实现京东秒杀脚本

1. 思路

京东秒杀脚本思路:首先跳转到京东登录页面扫码登陆,然后进入我的购物车(需要提前把秒杀商品加入购物车),点击全选按钮,再点击结算跳转到结算页面下单,秒杀成功之后,在待付款里可以选择要付款得订单。

2.工具

命令行执行 pip install selenium 安装需要库
或者pycham里安装,参考我的另一篇文章
下载chromedriver.exe,注意要下载和你本地浏览器对应版本,我用的版本是这个点击可以下载,也可以在第三方下载地址

3.代码

有疑问可以给我留言,注意事项:扫码登录也只有10秒,错过没登陆后面会报错,具体代码如下:

# !/usr/bin/env python
# 20200515
# 京东秒杀脚本,扫码登录版
from selenium import webdriver
mport time,datetime
driver = webdriver.Chrome(executable_path=r"D:\andy\python\chromedriver.exe")
# 时间格式:"2020-05-15 10:30:00.000000"
def jdAutoBuy(ordertime):
    print('.........................START..........................')
    driver.get("https://passport.jd.com/new/login.aspx")
    driver.implicitly_wait(5)
    #10秒内扫码登录,过时会跳过
    time.sleep(10)
    driver.get("https://cart.jd.com/cart.action")
    #如果没有全选,点击全选
    if not driver.find_element_by_class_name('jdcheckbox').is_selected():
        driver.find_element_by_class_name('jdcheckbox').click()
    #driver.save_screenshot('order.png')
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
        if now>ordertime:
            driver.find_element_by_class_name('submit-btn').click()
            #js = "document.getElementsByClassName('submit-btn')[0].click()"
            #driver.execute_script(js)
            driver.find_element_by_id('order-submit').click()
            driver.quit()
            break
    print('.........................END..........................')
##调用秒杀函数
jdAutoBuy('2020-05-16 09:13:00.000000')


记得关注我,后续会有持续更新。。。。。
有兴趣的可以关注另一篇文章:淘宝双十一自动下单

4.chromedriver和PhantomJS介绍

下面闲聊一下chromedriver和PhantomJS,如果使用PhantomJS,selenium控制台会提示:UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless ’
很明确,现在后者已不建议使用,刚开始我用的是PhantomJS,老是遇到莫名其妙得问题,比如上面点击结算按钮,一直不起作用,使用js调用也不行,实在没办法,换成chromedrive代码成功运行了,哈哈哈。
另外chromedriver默认调用浏览器运行,这样得好处是可以可视化得看到程序运行页面,如果不想打开页面,可以添加参数,开头换成下面代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options
import time,datetime
chrome_options = Options()
chrome_options.add_argument('--headless')
#chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(chrome_options=chrome_options,executable_path=r"D:\andy\python\chromedriver.exe")

这样扫码登录就需要你在登录页面截屏保存下来,在扫码登录。

你可能感兴趣的:(智能实用脚本,python,selenium,chrome)