用Python selenium实现淘宝抢单机器人


Posted in Python onJune 18, 2021

一、痛点

各大电商在一些特定的日子都会开启促销活动,如618、双十一等,有时还得盯着时间抢限量发售的商品,但你的成功率高吗?是否经常会遇到App一直加载,刷新后发现商品被一扫而光了?事实是,很多和你竞争抢购商品的对手比你的手更快更准,因为他们很多都是能精准执行命令的机器人

气不气?没关系这篇文章将手把手教你零基础建设一个自己的机器人,帮你在设定好的时间自动下单,再也不用为抢不到心爱的宝贝烦恼了!

二、准备工作

在建设机器人之前,请确保你准备好了如下工具:

  • 一台电脑:不需要多快多新,能用就行
  • Chrome浏览器:机器人将在Chrome上完成自动下单的工作
  • Python编程环境:别怕,你不需要会编程,代码已经帮你写好了。但你需要安装一个软件能让它跑起来,所以需要简单配置一下python的编程环境。Windows和Mac用户,请按照相对应的方式配置。

2.1 "Windows 配置Python"

下列步骤适用于Windows系统。

Anaconda是一个开源的Python发行版本,集成了Python和众多科学包。

  • 第一步:下载Anaconda Windows版本的64-Bit Graphical Installer
  • 第二步:安装Anaconda
  • 第三步:打开Anaconda Navigator,点击Launch Notebook或JupyterLab

然后你会看到这样的画面:

用Python selenium实现淘宝抢单机器人

Jupyter Lab

看到右侧的Notebook区域,添加一个Notebook,然后使用下面的代码打造机器人!

2.2 "Mac 配置Python"

下列步骤适用于Intel Mac和M1 Mac。

  • 第一步:打开终端(command + space 激活Spotlight,输入Terminal)

用Python selenium实现淘宝抢单机器人

终端Terminal

  • 第二步:输入pip3 install jupyter
  • 第三步:输入pip3 install jupyter-lab
  • 第四步:输入jupyter lab

然后你会看到这样的画面:

用Python selenium实现淘宝抢单机器人

Jupyter Lab

看到右侧的Notebook区域,添加一个Notebook,然后使用下面的代码打造机器人!

三、代码

以下代码请在你刚才创建的Notebook中运行。

3.1 下载需要的程序包

# Selenium 常用于网页的自动化测试,在此我们借助它自动化淘宝下单的过程
!pip install selenium
!which python

上面的代码返回了/opt/anaconda3/bin/python,接下来就要用到这个地址。

3.2 下载一个小配件

  • 查看自己Chrome浏览器的版本(进入关于Chrome即可看到软件版本)
  • 前往ChromeDriver的官方下载地址下载对应版本的chrome driver后,放在此/opt/anaconda3/bin 文件夹里 
from selenium import webdriver
import datetime
import time

小技巧:这个时间可以用来快速设定抢购时间

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

2021-06-18 00:00:00.000000

3.3 机器人的零件

def login():
    # 打开淘宝首页,通过扫码登录
    browser.get("https://www.taobao.com")
    if browser.find_element_by_link_text("请登录"):
        browser.find_element_by_link_text("请登录").click()
        print(f"请尽快扫码登录")
    time.sleep(10)
def picking():
    # 打开购物车列表页面
    browser.get("https://cart.taobao.com/cart.htm")
    time.sleep(3)
    # method = 0全选购物车
    method = 0
    if method == 0:
        while True:
            try:
                if browser.find_element_by_id("J_SelectAll1"):
                    browser.find_element_by_id("J_SelectAll1").click()
                    break
            except:
                print(f"找不到购买按钮")
    #method = 1 手动勾选
    else:
        print(f"请手动勾选需要购买的商品")
        time.sleep(5)
#等待抢购时间,定时秒杀,这里我们定义一个buy函数
def buy(times):
    print(times)
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
        # 对比时间,时间到的话就点击结算
        if now > times:
            # 点击结算按钮
            while True:
                try:
                    if browser.find_element_by_link_text("结 算"):
                        browser.find_element_by_link_text("结 算").click()
                        print(f"结算成功,准备提交订单")
                        break
                except:
                    pass
            # 点击提交订单按钮
            while True:
                try:
                    if browser.find_element_by_link_text('提交订单'):
                        browser.find_element_by_link_text('提交订单').click()
                        print(f"抢购成功,请尽快付款")
                except:
                    print(f"再次尝试提交订单")
            time.sleep(0.01)

3.4 启动机器人

browser = webdriver.Chrome()
login()
picking()

3.5 定时下单

order_time = input("请输入抢购时间,格式如(2021-06-08 19:30:00.000000):")

请输入抢购时间,格式如(2021-06-08 19:30:00.000000): 2021-06-08 19:55:00.000000

buy(order_time)

到此这篇关于用Python selenium实现淘宝抢单机器人的文章就介绍到这了,更多相关Python selenium淘宝抢单内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
python生成二维码的实例详解
Oct 29 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
Jul 10 Python
python判断输入日期为第几天的实例
Nov 13 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 Python
python plotly画柱状图代码实例
Dec 13 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
Python 线性回归分析以及评价指标详解
Apr 02 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 Python
在python中实现导入一个需要传参的模块
May 12 Python
python中pandas对多列进行分组统计的实现
python 常用的异步框架汇总整理
Jun 18 #Python
Opencv中cv2.floodFill算法的使用
Python下opencv使用hough变换检测直线与圆
python 网络编程要点总结
Jun 18 #Python
python opencv检测直线 cv2.HoughLinesP的实现
Jun 18 #Python
教你用Python+selenium搭建自动化测试环境
Jun 18 #Python
You might like
用PHP程序实现支持页面后退的两种方法
2008/06/30 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
关于COOKIE个数与大小的问题
2011/01/17 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
js重写方法的简单实现
2016/07/10 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
Python下线程之间的共享和释放示例
2015/05/04 Python
python脚本内运行linux命令的方法
2015/07/02 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
django列表筛选功能的实现代码
2020/03/27 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
John Hardy官方网站:手工设计首饰的奢侈品牌
2017/07/05 全球购物
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
小学一年级学生评语
2014/04/22 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
小学班长竞选稿
2015/11/20 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
深入探讨opencv图像矫正算法实战
2021/05/21 Python
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle