520提前教你们python制作万能抢购神器,学不会就准备过光棍节吧

前言:

关于这个脚本的话,其实是我18年给学员讲的一个小案例。虽然是针对淘宝的,但实际上它是个万能脚本,为什么呢?因为它是selenium写的,所以说基本都是通用的,无非是改一些元素选择即可。

在这里插入图片描述

本文包含文章的思路介绍以及源代码提供,并且包含视频教程!

分析(x0)

首先咱们以淘宝为例,那么你想要抢购商品,

第一步

要做的就是登录账号:

在这里插入图片描述

然后呢

第二步

大家一定要选择扫码登录:

理由就是淘宝毕竟是淘宝,你正常的模拟输入账号密码是被检测的,有人可能已经尝试过,我可以这样讲吧,如果把账号拆成三段,密码拆成三段,然后加延迟的话确实偶尔可以登录成功!

但是你要知道为什么是偶尔呢?因为淘宝风控的是你的代理包括你的一个机器环境。所以咱们还是老老实实选择扫码登录吧。

在这里插入图片描述

第三步

肯定好多人会认识是搜商品然后…其实不是的,关于咱们的一个抢购机制咱们一定要明白,那就是以结算为准以结算为准以结算为准,重要的事情说三遍,

在这里插入图片描述

何为结算?

其实就是说你只需要点击到结算按钮即可(即使不结算也没事,只要你点击了结算,系统会提醒你必须多长时间内付款,但实际上这个商品只要你付款就已经属于你,名额已经属于你了)

所以咱们需要做的就是提前手动把需要抢购的商品添加到购物车,然后判断时间,如果到点了,那么脚本立马给我无限点击结算即可!

在这里插入图片描述

环境配置

模块

  • selenium
  • time
pip install selenium

time 为内置模块无需安装。

selenium的环境配置

这个东西我讲过无数遍了,没办法 。还是得从以前的文章中复制粘贴过来…

关于selenium这个模块,咱们来重点介绍一下:

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。

如果不能够理解我就讲点白话,如果你是web开发人员,开发好了几百个网站,那么如果你认为的去一个个的测试BUG,是不是很浪费时间?而selenium这个框架就是用来模拟人去自动化操控浏览器的,那么是不是就节约了很多时间呢。

既然selenium能够操控浏览器,那么它们之间必须要有一个桥梁,总不能无中生有吧?

那么操控的浏览器款式不一样,中间的桥梁也是不一样的。比如我更喜欢用chrome浏览器,那么咱们需要下载一个selenium与Chrome的桥梁——Chromedriver插件

下载地址

在这里插入图片描述

下载与你当前谷歌浏览器版本最相近的Chromedriver

在这里插入图片描述

那么像我的话,下载

在这里插入图片描述

​ 即可。

Windows系统需下载32位,其它的自己看着办。点进去下载win32即可。


在这里插入图片描述

那么如何让Python与selenium连接起来呢,这里咱们需要配置一个环境变量,就是把Python与selenium处于同一个目录:


在这里插入图片描述

到此为止,咱们的环境就搭建好了。

Python代码

from selenium import webdriver
import datetime, time


def login():
    # 打开淘宝登录页,并经行扫码登录
    brower.get("https://www.taobao.com")

    # 等待selenium 框架加载网页完成
    time.sleep(3)

    if brower.find_element_by_link_text("亲,请登录"):
        brower.find_element_by_link_text("亲,请登录").click()
        input('扫码完成后按一下Enter键')

        brower.get("https://cart.taobao.com/cart.htm")
    time.sleep(3)

    now = datetime.datetime.now()
    print('login success: ', now.strftime('%Y-%m-%d %H:%M:%S'))


# 2. 实现商品购买
def buy(times):
    # 点击购物车里的全选按钮
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
        # 对比时间,时间到的话就点击结算
        if now > times:
            while True:
                # 异常处理
                try:
                    if brower.find_element_by_id("J_SelectAll2"):
                        brower.find_element_by_id("J_SelectAll2").click()
                        break
                except:
                    print('找不到全选按钮...')
     
            # 点击结算按钮//*[@id="J_Go"]/span
            while True:
                try:
                    if brower.find_element_by_xpath('//*[@id="J_Go"]/span'):
                        brower.find_element_by_xpath('//*[@id="J_Go"]/span').click()
                        print('结算成功')
                        break
                except:
                    print('找不到结算按钮')
          
            # 提交订单
            # while True:
            #     try:
            #         if brower.find_element_by_link_text('提交订单'):
            #             brower.find_element_by_link_text("提交订单").click()
            #             now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
            #             print('抢购成功时间:%s' % now1)
            #             break
            #     except:
            #         print('我的银行卡没钱...')
            #
            # time.sleep(0.01)#2019-06-09 17:05:00.000000

# 启动函数2019-11-02 14:03:00.000000


if __name__ == "__main__":
    times = input("请输入抢购时间,格式(2019-05-08 20:00:00.000000):")
    brower = webdriver.Chrome()
    login()
    buy(times)

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值