年中,618购物狂潮开始,各大电商开始大规模打折促销。我们胖乎乎的给大家做了一波福利。淘宝APP直接搜索:胖乎乎给福利,一天三次收到粉丝专属现金红包。
拿着一个很大的现金红包,如何省钱?今天给大家一个思路,用Python杀单,用自动化完成最优解。
1环境
操作系统:Windows
Python版本:3.7.2
2需求分析&初步准备
2.0需求分析
我们的目标是干掉淘宝的订单。有几个要点。首先,你需要登录淘宝。其次,你需要准备订单。最后,您需要在指定的时间快速提交订单。
要登录淘宝,我们需要使用一个爬虫工具Selenium,这是一个自动化测试工具。有了它,我们就可以驱动浏览器执行具体的动作,比如点击、下拉等等,你看到的就是你得到的。另外,对于部分JavaScript渲染的页面,这种方法非常有效。
2.1硒的安装
Selenium的安装很简单,可以采用如下方式。
pip安装硒
硒安装后不能直接使用。需要和浏览器对接。以Chrome浏览器为例。如果想用Selenium成功调用Chrome浏览器完成相应的操作,需要用ChromeDriver驱动。
2.2安装chrome驱动程序
这是ChromeDriver的官方下载地址。
链接:https://chromedriver.storage.googleapis.com/index.html
下载之前先确认一下我们用的Chrome浏览器版本。
通过ChromeDriver的下载链接找到对应的Chrome浏览器版本,根据你电脑系统的平台类型下载。
下载后,将其解压缩并放在Python安装路径下的脚本文件夹中
在上述操作之后,我们执行以下命令来测试它
来自selenium import webdriver
#打开Chrome浏览器
browser = webdriver。Chrome()
代码执行后,如果浏览器打开成功,证明你的ChromeDriver安装正确,可以正常愉快的使用Selenium。
接下来我们来回顾一下淘宝购物流程。
3淘宝购物流程回顾
3.3.1首先打开淘宝网站
https://www.taobao.com
要使用选择模式,代码如下:
browser . get(" https://www . Taobao . com ")
3.3.2只有登录淘宝才能进行下一步。
切换到选择模式,代码:
浏览器。find _ element _ by _ link _ text(“亲爱的,请登录”)。点击()
这时,我们将跳转到代码扫描和登录的页面。我们会用手机扫描代码,成功登录后进行下一步。
3.3.3登录成功后,我们打开购物车。链接如下:
https://cart.taobao.com/cart.htm
切换到选择模式,代码:
browser . get(" https://cart.taobao.com/cart.htm")
3.3.4如果我们想选择购物车中的所有商品,只需单击全选。
切换到选择模式,代码:
browser . find _ element _ by _ id(" J _ selectall 1 ")。点击()
注意:如果您的购物车中有许多商品,并且您不想全部购买,请手动选择您想要订购的商品。
3.3.5验货后可以“结算”订单。
在选择模式下,代码为:
浏览器。find _ element _ by _ link _ text(“结算”)。点击()
3.3.6等待订单提交后再进行计数
在Seluinm模式下,代码为:
浏览器。find _ element _ by _ link _ text('提交订单')。点击()
3.3.7订单成功秒后,下一笔付款要慢慢来。
实现4秒秒杀
二杀的实现也很简单。这里有两个时间点,一个是抓拍时间,一个是当前时间。只要比较一下这两个时间点,到抢购的时候马上下单。
要记录时间,需要使用datetime作为内置模块,代码如下:
导入日期时间
now = datetime.datetime.now()。str time(“% Y-% M-% d % H:% M:% s . % f”)
5代码梳理
首先我们要登录淘宝,在这里我们定义了一个登录功能
def login():
#打开淘宝首页,扫码登录
browser . get(" https://www . Taobao . com ")
睡眠时间(3)
如果浏览器。find _ element _ by _ link _ text(“亲爱的,请登录”):
浏览器。find _ element _ by _ link _ text(“亲爱的,请登录”)。点击()
打印(f)“请尽快扫描代码并登录”)
睡眠时间(10)
下一步是检查购物车里的商品。这里我们定义一个拣选函数
定义提货(方法):
#打开购物车列表页面
browser . get(" https://cart.taobao.com/cart.htm")
睡眠时间(3)
#您想选择所有购物车吗
if方法== 0:
而真实:
尝试:
如果浏览器. find _ element _ by _ id(" J _ selectall 1 "):
browser . find _ element _ by _ id(" J _ selectall 1 ")。点击()
打破
除了:
打印(f“未找到购买按钮”)
else:
打印(f)“请手动检查要购买的货物”)
睡眠时间(5)
等待抢购时间,定期杀戮,这里我们定义一个购买函数
def购买(次数):
而真实:
now = datetime.datetime.now()。str time(“% Y-% M-% d % H:% M:% s . % f”)
#比较时间,时间到了点击结算
如果现在>。时间:
#单击结算按钮
而真实:
尝试:
如果浏览器。find _ element _ by _ link _ text("结算"):
浏览器。find _ element _ by _ link _ text(“结算”)。点击()
打印(f)“成功结算,准备提交订单”)
打破
除了:
通过
#单击提交订单按钮
而真实:
尝试:
如果浏览器。find _ element _ by _ link _ text('提交订单'):
浏览器。find _ element _ by _ link _ text('提交订单')。点击()
打印(f)“购买成功,请尽快付款”)
除了:
打印(f)“尝试再次提交订单”)
时间.睡眠(0.01)
6摘要
短短几十行代码就能秒杀淘宝订单。赶紧行动!记住,每天在淘宝上搜索胖乎乎的头发福利,获得粉专属福利~