点击上方“码农经”关注,星标或置顶。
22: 24准时推送,第一时间送达。
来源:Python专栏|编辑:Makoto君
Coder _ experience第32条推文的图片来自网络。
最后:Python自动抢红包,超级详细的教程,再也不要错过微信红包了!
主体
目录
0简介
1环境
2需求分析和早期准备
3淘宝购物流程回顾
实施《秒杀4》
5代码梳理
6摘要
0简介
年中购物618狂欢节打响,各大电商又开始了大折扣促销。我们小胖又给大家做了一波福利。淘宝APP直接搜索:小胖发福利,每天给粉丝领三个大现金红包。
有了大现金红包,怎么省钱?今天给大家提供一个思路,就是用Python实现秒杀订单,用自动化完成最优解。
1环境
操作:Windows
Python版本:3.7.2
2需求分析和早期准备
2.0需求分析
我们的目标是干掉淘宝的订单。有几个关键点。首先,你需要登录淘宝。其次,你需要准备订单。最后,您需要在指定的时间快速提交订单。
登录淘宝,我们需要一个爬虫武器Selenium,这是一个自动化测试工具。有了它,我们可以驱动浏览器执行特定的动作,比如点击、下拉等等,所见即所得。另外,对于一些JavaScript渲染的页面,这种抓取方式非常有效。
2.1硒的安装
Selenium可以通过以下方式轻松安装。
pip安装硒
硒安装后不能直接使用。需要和浏览器对接。以Chrome浏览器为例。如果想用Selenium成功调用Chrome浏览器完成相应的操作,需要用ChromeDriver来驱动。
2.2镀铬装置的安装
这是ChromeDriver的官方下载地址。
下载前先检查一下我们用的Chrome浏览器版本。
通过ChromeDriver的下载链接找到对应的Chrome浏览器版本,根据自己电脑系统的平台类型进行下载。
下载后,解压缩并将其放在Python安装路径下的Scripts文件夹中。
完成上述操作后,我们执行下面的命令来测试它。
从Selenium导入Webdriver
#打开Chrome浏览器
browser = webdriver。铬合金()
代码执行后,如果浏览器成功打开,证明你的ChromeDriver安装没有任何问题,Selenium可以正常愉快的使用。
接下来,我们先来回顾一下淘宝购物流程。
3淘宝购物流程回顾
3.3.1首先打开淘宝网站。
https://www.taobao.com
用Seleuinm代替,代码如下:
browser . get(" https://www . Taobao . com ")
3.3.2只有登录淘宝才能进行下一步。
更改为Seleuinm模式,代码:
browser . find _ element _ by _ link _ text("亲爱的,请登录")。单击()
这时我们会跳转到一个扫码登录的页面。我们用手机扫码,成功登录后再进行下一步。
3.3.3登录成功后,我们来打开购物车。链接如下:
https://cart.taobao.com/cart.htm
更改为Seleuinm模式,代码:
browser . get(" https://cart . Taobao . com/cart . htm ")
3.3.4我们要选择购物车中的所有商品,只需点击全选即可。
更改为Seleuinm模式,代码:
browser . find _ element _ by _ id(" J _ selectall 1 ")。单击()
注意:如果您的购物车中有许多商品,并且您不想全部购买,请手动检查您想要订购的商品。
3.3.5验货后,可以“结算”订单。
改成Seleuinm模式,代码是:
browser . find _ element _ by _ link _ text(" closing ")。单击()
3.3.6等待订单提交后再清点。
改成Seleuinm模式,代码是:
browser . find _ element _ by _ link _ text('提交订单')。单击()
3.3.7下单成功后,会慢慢进行下一笔付款。
实施《秒杀4》
spike的实现也很简单。这里有两个时间点,一个是买入时间,一个是当前时间。就对比一下这两个时间点,到了抢购的时候马上下单。
要记录时间,您需要使用datetime,这是一个内置模块。代码如下:
import datetime
now = datetime . datetime . now()。strftime('%Y-%m-%d %H:%M:%S.%f ')
5代码梳理
你得先登录淘宝。这里我们定义一个登录函数。
Def login():
#打开淘宝首页,登录
browser . get(" https://www . Taobao . com ")
time . sleep(3)
if browser . find _ element _ by by。请登录”):
browser . find _ element _ by _ link _ text("亲爱的,请登录")。click()
print(f "请尽快扫码登录")
time.sleep(10)
接下来,检查购物车中的商品。这里我们定义一个拣选函数。
Def picking(method):
#打开购物车列表页面
browser . get(" https://cart . Taobao . com/cart . htm ")
time . sleep(3)
#选择所有购物车[if method = = 0:
while True:
try:
if browser . find _ element _ by _ id(" J _ selectall 1 "):
browser . find _ element _ by _ id(" J _ selectallclick ()
break
除:
print (f“找不到购买按钮”)
其他:
print(f“请手动检查要购买的商品”)
time.sleep
等待争取时间,定时杀人。这里我们定义一个购买函数。
def buy(times):
while true:
now = datetime。日期时间。现在()。strftime(' % y-% m-% d % h:% m:% s . % f ')
#比较时间Times:
#单击结算按钮
同时true:
Try:
if browser . find _ element _ by _ link _ text(" closing "):
browser . find _ element _ by _ link。。click()
print(f“结算成功,准备提交订单”)
break
除:
pass
#点击提交订单按钮
同时true:
try:
if browser . find _ element _ by _ link _ browser . find _ element _ by _ link _ text('提交订单')。点击()
打印(f“抢购成功,请尽快付款”)
除:
打印(f“再次尝试提交订单”)
6摘要
短短几十行代码就能秒杀淘宝订单。赶紧行动吧!记住,每天在淘宝上搜索小胖发福利,获得粉专属福利~
-结束-
往期热门文章:
Python为什么要保持明确的自我?
如何用Python操作Git代码?GitPython简介
Python技巧——用类编写装饰器
大神高级编程:Python技巧
Python的四个主流Web编程框架
喜欢这篇文章的朋友,欢迎关注下图,关注订阅号代码农真镜。
观看更多精彩内幕
你在看吗?混合