Python使用Selenium实现淘宝抢单的流程分析


Posted in Python onJune 23, 2020

最近,小明为了达成小姐姐的愿望,在某宝买到心仪的宝贝,再加上又迷上了python,就通过python轻而易举地实现了(个人声明:对Java来说,这并不是背叛)。

需求分析&前期准备

需求其实很简单,正常购物。那我们平常的购物流程如下所示:

Python使用Selenium实现淘宝抢单的流程分析

开始之前,我们需要准备一下程序运行环境。

  • 环境系统:Windows/Mac OS
  • Python版本:3.7.2

为了让程序模拟我们每一步操作,给大家介绍一个利器:Selenium

Selenium测试同学应该会感觉特别亲切。它是一个自动化测试工具,通过它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,所见即所得。

Selenium的安装

运行如下命令:

pip install selenium

但若想使用Selenium成功调用Chrome浏览器完成相应的操作,我们还需要一个媒介与浏览器对接。小明本次使用的是Chrome浏览器,因此就需要通过ChromeDriver来驱动。

ChromeDriver的安装

这里是谷歌浏览器ChromeDriver的官方下载地址:
https://chromedriver.storage.googleapis.com/index.html
我们需要根据自己的Chrome浏览器版本,找到相应版本的ChromeDriver,再根据你电脑系统的平台类型进行下载、解压。

  • windows:将其放置在Python安装路径下Scripts文件夹下
  • Mac OS:将其放置在/usr/local/bin

环境配置到此结束,小明编写了一个python脚本,用来验证环境搭建是否成功:

from selenium import webdriver
# 打开Chrome浏览器
if __name__ == '__main__':

browser = webdriver.Chrome()

运行代码后,如果成功打开了一个新的浏览器,就证明我们的环境安装的没问题,接下来就可以愉快的购物了。

脚本编写

对比上面淘宝购物流程图,对应代码如下:

打开淘宝网站

browser.get("https://www.taobao.com")

登录
首先是跳转到登陆页

browser.find_element_by_link_text("亲,请登录").click()

登录方式选择二维码

browser.find_element_by_class_name("icon-qrcode").click()

用手机进行扫码成功之后进行下一步。

登录成功后,打开购物车

browser.get("https://cart.taobao.com/cart.htm")

勾选商品

 browser.find_element_by_id("J_SelectAll1").click()

推荐选择全选,但如果你的购物车商品比较多,又不想全选购买,那就暂先手动勾选想要下单的商品?。

结算

browser.find_element_by_link_text("结 算").click()

提交订单

browser.find_element_by_link_text('提交订单').click()

只要下单成功,接下来的付款,不用着急,只要在规定的时间内支付就好。
以上就是完整购物的流程。那秒杀是如何实现呢?

秒杀的实现

思路其实很简单,就是在正常购物的基础上增加一个时间的判断:如果当前时间到了指定的时间点,就触发下单。

获取当前时间,需要使用到datetime这个内置模块,代码如下:

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

代码梳理

  • 定义一个login函数,用来登录
  • 定义一个picking函数勾选购物车中的商品
  • 定义一个buy函数等待抢购时间,定时秒杀

完整代码请点击访问我的github

推荐文档

Selenium-Python中文文档

今晚可以不加班!

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

Python 相关文章推荐
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
pyqt5 删除layout中的所有widget方法
Jun 25 Python
详解python和matlab的优势与区别
Jun 28 Python
如何使用django的MTV开发模式返回一个网页
Jul 22 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 Python
Python+OpenCV实现将图像转换为二进制格式
Jan 09 Python
python实现批量修改文件名
Mar 23 Python
Python numpy矩阵处理运算工具用法汇总
Jul 13 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
Nov 05 Python
如何在Python中创建二叉树
Mar 30 Python
Python利用folium实现地图可视化
May 23 Python
Python函数对象与闭包函数
Apr 13 Python
python2和python3哪个使用率高
Jun 23 #Python
python使用QQ邮箱实现自动发送邮件
Jun 22 #Python
浅谈keras中loss与val_loss的关系
Jun 22 #Python
python实现简易版学生成绩管理系统
Jun 22 #Python
python能否java成为主流语言吗
Jun 22 #Python
python让函数不返回结果的方法
Jun 22 #Python
python实现学生成绩测评系统
Jun 22 #Python
You might like
JSON在PHP中的应用介绍
2012/09/08 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
基于JavaScript实现在新的tab页打开url
2016/08/04 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
python cumsum函数的具体使用
2019/07/29 Python
详解Python文件修改的两种方式
2019/08/22 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
python的数学算法函数及公式用法
2020/11/18 Python
python源文件的字符编码知识点详解
2021/03/04 Python
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
学生干部学习的自我评价
2014/02/18 职场文书
化学教学随笔感言
2014/02/19 职场文书
母亲节感恩寄语
2014/02/21 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
团组织推优材料
2014/12/29 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书