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

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

66f8496d08ec2a732f62718467c07f41.png

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

思路分析:

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

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

代码如下:

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自动化测试工具模拟人操作浏览器的行为,替我们自动下单。大家想一下,代码执行的速度是非常快的,肯定比人用鼠标点击网页的按钮快得多。所以,我们就可以利用程序帮我们抢购商品。

以下为程序的执行流程图

0a44009cf701d55f15967b7c8f9bf967.png

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

以下为演示效果:

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

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

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

关注哥们并肩走过

与你分享我的

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

d9deca23abbd2ccb706a23ec6e6e256a.png

京东618叠蛋糕一共多少层 50层 1)时间:2020年5月21日00:00:00--2020年6月18日15:59:59 2)玩法说明:京东6‌‍‍‌‍‌‌‍‍‌‌‌‌‍‍‌‌‌‌‌‍‍‍‍‌‍‌‌‍‍‌‍‌‌‍‍‌‌‌‌‌‌‌‌‌‍‍‍‌‌‍‍‌‌‌‌‍‍‌‍‌‌‍‍‌‌‌‌‍‍‌‌‌‍‌‌‌‌‌‌‌‌‌‌‍‍‌‍‌‌‍‍‍‍‌‌‌‍‍‍‍‌‌‍‌‍‍‌‍‌‌‍‍‌‌‌‌‍‍‍‍‍‍‌‍‌‌‌‌‌‌‌‍‍‌‍‌‌‍‌‌‌‌‍‌‌‍‌‌‍‌‌‌‍‍‌‍‍‌‍‌‌‍‌‌‌‌‌‍‌‍‌‍‍‍‍‍‌‌‍‌‌‍‍‌‍‌‌‍‍‍‌‌‌‌‍‍‌‌‍‍‍‍‌‌‍‍‌‍‍‌‍‍‍‍‌‍‌‍‌‌‍‌‌‍‌‌‌‍‍‍‍‍‍‌‌‌‌‌‌‌‍‍‌‍‌‍‌‍‍‍‍‍18初始赠送用户一层蛋糕,用户通过做任务收集金币,每收集一定数量金币即可通过“叠蛋糕”获得一层新的蛋糕,最终可叠成蛋糕塔。用户成功叠至3层蛋糕,即可获得活动瓜分奖池的资格。用户在叠第4层到第50层的阶段中,所叠蛋糕层数越多,瓜分时则有机会获得更大金额;同时每次叠蛋糕成功时有机会获得不定数量和金额的红包或优惠券作为额外奖励。 京东叠蛋糕分红包最多的是多少 按照往年的红包比例来说,除了极个别人可以拿到大额的红包以外 普遍的能够拿到的红包金额为10元左右
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值