jd抢购脚本_618京东商品自动抢购

这两天一直忙于考试和课程设计,就没什么时间写推文啦,话说回来,618购物节不是要来了吗?本期推文就和大家聊聊商品自动抢购是如何实现的。

jd抢购脚本_618京东商品自动抢购_第1张图片

这个京东抢购脚本程序是下午花了大概半个小时写的,实现了商品的自动抢购功能。由于写得比较仓促,还有很多不完美的地方,程序仅供参考,请勿用于商业用途。接下来就和大家聊聊商品自动抢购程序是如何实现的呢?

思路分析:

商品抢购的思路非常简单,主要就是模仿购物流程,让程序解放我们的双手。

我们先来想一下,平时我们是如何购物的呢?我们首先需要把商品加入购物车,然后点击购物车结算,再填写收货地址等信息,最后提交订单即可。大家不要以为上面写的购物流程都是废话,谁还不知道这个啊,其实不然,解决问题的第一步是分析问题,其次才是开始写代码,说白了,代码只是把我们的分析的思路写一遍而已。既然问题已经分析清楚了,那我们就开始写代码吧。

代码如下:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import datetime
import time


class QiangGou(object):

    # 初始化参数
    def __init__(self,buyTime,linkUrl):
        self.driver_path = "C:\chromedriver/chromedriver.exe"
        self.login_url = "https://passport.jd.com/new/login.aspx"
        self.index_url = "https://www.jd.com/"

        self.shop_url = linkUrl
        self.driver = webdriver.Chrome(executable_path=self.driver_path)
        self.buyTime = buyTime

    # 提前扫码登录
    def login(self):

        self.driver.get(self.login_url)

        WebDriverWait(self.driver, 1000).until(
            EC.url_to_be(self.index_url)
        )
        print("登录成功",datetime.datetime.now().strftime("%Y-%m-%d:%H-%M-%S.%f"))


    # 抢购商品
    def order(self):
        self.driver.get(self.shop_url)

        try:
            while True:

                nowTime = int(round(time.time()))
                buyTime = int(time.mktime(time.strptime(self.buyTime, "%Y-%m-%d:%H-%M-%S")))

                print("抢购到计时:", buyTime - nowTime)

                if nowTime > buyTime:

                    # 点击抢购按钮
                    while True:
                        order_button = self.driver.find_element_by_xpath('//*[@id="btn-reservation"]')
                        if order_button:
                            order_button.click()
                            break
                        else:
                            print("没有找到抢购按钮")

                    # 点击我的购物车
                    while True:
                        car_button = self.driver.find_element_by_xpath('//*[@id="settleup-2014"]/div[1]/a')
                        if car_button:
                            car_button.click()
                            break
                        else:
                            print("没有找到我的购物车按钮")

                    # 点击购物车结算
                    self.driver.switch_to.window(self.driver.window_handles[1])  # 切换到新窗口
                    while True:
                        pay_button = self.driver.find_element_by_xpath(
                            '//*[@id="cart-floatbar"]/div/div/div/div[2]/div[4]/div[1]/div/div[1]/a')
                        if pay_button:
                            pay_button.click()
                            print("点击结算页面成功")
                            break
                        else:
                            print("没有找到结算按钮")

                    # 提交订单
                    while True:
                        submit_button = self.driver.find_element_by_xpath('//*[@id="order-submit"]')
                        if submit_button:
                            submit_button.click()
                            print("订单提交成功,请尽快支付")
                            break
                        else:
                            print("没有找到订单提交按钮")
        except:
            print("请重新运行脚本")



    # 开始抢购
    def run(self):
        # 登录京东
        self.login()
        # 商品抢购
        self.order()


# 2020-06-16:16-47-35
# "https://item.jd.com/100010879626.html"

if __name__ == '__main__':
    buyTime = input("请输入抢购时间:(格式为:2020-06-16:16-47-35)")
    linkUrl = input("请输入商品连接")
    p = QiangGou(buyTime,linkUrl)
    p.run()

如果大家暂时还看不懂上面的代码也没有关系(大概理解如何实现的即可),代码翻译成大白话就是使用selenium自动化测试工具模拟人操作浏览器的行为,替我们自动下单。大家想一下,代码执行的速度是非常快的,肯定比人用鼠标点击网页的按钮快得多。所以,我们就可以利用程序帮我们抢购商品。

以下为程序的执行流程图

jd抢购脚本_618京东商品自动抢购_第2张图片

提交了订单以后,我们只要在规定时间以内支付即可。

以下为演示效果:

只需要输入抢购的时间商品的链接即可,剩下的就不用我们自己操作啦,当然这里没有实现自动登录的功能,需要扫码登录,自动登录也比较简单。

其实,商品抢购挺简单的(简单的前提是分析问题),请大家不要将该脚本用于任何商业用途,脚本仅供学习交流使用

好了,本期推文就到这里啦。拜拜!如需源码请在公众号后台私聊哦。

关注哥们并肩走过

与你分享我的

生活趣事/好物推荐/旅行见闻/编程思考

jd抢购脚本_618京东商品自动抢购_第3张图片

你可能感兴趣的:(jd抢购脚本,python京东抢购脚本,winform,自动运行button,click,京东,抢购,脚本,京东,抢购脚本,京东抢购脚本)