备战618!用Python脚本帮你实现淘宝秒杀

 更新时间:2021年06月17日 10:53:47   作者:数量技术宅  
本次的文章,分享一个淘宝秒杀脚本,这个脚本用Python编写,使用了Python库selenium,并且通过selenium + chromedriver,用程序控制chrome浏览器,完成抢购的一系列操作.有了这个脚本,大家至少可以与其他的机器人站在同一起跑线上,公平抢购喜欢的宝贝 ,需要的朋友可以参考下

selenium 安装与 chromedriver安装

我们前文提到,Python脚本中使用了selenium库,而selenium又通过chromedriver来控制浏览器的鼠标点击等操作。所以,我们的第一步,是正确的安装与配置selenium以及chromedriver。

selenium的安装很简单,与其他Python三方库一样,我们直接用pip安装。

pip install selenium

chromedriver的安装,首先,chromedriver的版本很关键,我们需要选择的chromedriver版本,一定要与Chrome的版本一致。因此, 我们需要查看Chrome版本,在浏览器中输入chrome://version/

这个示例中Chrome的版本是 72.0.3626, 我们再到以下两个网站的其中之一,去下载对应版本的chromedriver。

1、http://chromedriver.storage.googleapis.com/index.html

2、https://npm.taobao.org/mirrors/chromedriver/

下载完成后,解压压缩包,找到chromedriver.exe复制到chrome的安装目录(其实也可以随便放一个文件夹)。复制chromedriver.exe文件的路径并加入到电脑的环境变量中去。具体的:

进入环境变量编辑界面,添加到用户变量即可,双击PATH,将文件位置(例如我们的是 C:\Program Files (x86)\Google\Chrome\Application\)添加到后面。

完成安装后,我们到cmd界面, 输入chromedriver,如果下方给出了chromedriver的版本号,说明已经安装成功。

我们再通过Python库selenium,来调用chromedriver,以此来简单测试chromedriver的功能。如果我们未配置环境变量,可用如下代码进行测试

from selenium import webdriver
import time
​
def main():
    chrome_driver = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'  #chromedriver的文件位置
    b = webdriver.Chrome(executable_path = chrome_driver)
    b.get('https://www.google.com')
    time.sleep(5)
    b.quit()
​
if __name__ == '__main__':
    main()

而如果我们已经配置好了环境变量,可以通过另一端代码来进行测试

from selenium import webdriver
import time
​
def main():
    b = webdriver.Chrome()
    b.get('https://www.baidu.com')
    time.sleep(5)
    b.quit()
​
if __name__ == '__main__':
    main()

核心模块代码解析

安装、配置完selenium与chromedriver之后,我们就可以开始编写秒杀脚本的核心逻辑了。核心逻辑,我们通过封装函数来实现各个步骤。

第一步,启动chromedriver,并登陆淘宝。这里需要注意的是,我们通过控制chromedriver打开淘宝主页,进入到登陆界面后,需要手工扫码进行登陆。这一步骤无法做到全自动。

第二步,登陆后,我们仍然是通过chromedriver控制,进入购物车界面,并设定一个60秒的定时刷新,即每隔60秒刷新一遍购物车界面,使得我们的淘宝账户保持在登陆状态。直到当前的时间与我们所设定宝贝的抢购时间相差小于100秒,再进入下一步。

第三步,通过chromedriver选中购物车全部商品,将本地时间与淘宝服务器时间校准,以淘宝服务器返回时间作为标准时间,一旦淘宝时间到达我们抢购的时间,立即从购物车提交订单。此时有两种情况,如果我们提交订单的任务发送的太早,提交订单按钮还没有出现,此时我们重复提交订单步骤,一直到按钮出现;另一种情况,提交订单按钮在我们发送提交请求的时候已经可用了,那么直接提交成功。

第四步,付款,由于部分抢购是以付款为顺序为优先级的,我们将付款操作也加入秒杀脚本的流程,并作为最后一步,当我们提交订单成功后,脚本将自动帮助我们执行支付宝的付款。此处需要注意的是,我们需要在脚本中提前设置好正确的6位数支付密码。

秒杀脚本使用示例

介绍完了秒杀脚本的核心逻辑,接下来,我们以天猫超市抢购茅台酒为例,来为大家演示这个秒杀脚本的执行流程。我们以茅台举例,并不意味着这个脚本只能抢购茅台,任何加入购物车的商品,在任何的时间,都可以用这个脚本来执行到点的秒杀。茅台由于天猫超市每天的量很有限,加上各类抢购的外挂很多,成功率比较低,但对于其他商品来说,这个秒杀脚本经过我们的对比测试,相比较手工抢购,成功率将提高一个量级。

我们执行main.py主程序脚本,程序会通过chromdriver控制,启动chrome自动打开淘宝主页,并进入登陆界面。可用看到网页上方有一行提示:Chrome正受到自动测试软件的控制。

 

然后,我们通过手机淘宝扫码登陆进入,登陆后,程序会自动进入购物车的界面,并每分钟刷新一次,以防止登陆超时。

临近抢购时间,程序选中购物车商品,并在抢购时间到达时,自动点击结算、提交订单。

提交订单成功后,进入付款环节,如果付款成功,代表我们的这一次秒杀成功抢到心仪的商品了,而如果付款失败,说明此次秒杀我们运气不佳,有人先一步抢到了。不过总体来说,我们有了秒杀脚本,已经超越了90%用户的抢购速度了。

到此这篇关于备战618!用Python脚本帮你淘宝秒杀的文章就介绍到这了,更多相关Python脚本淘宝秒杀内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 对Python3 pyc 文件的使用详解

    对Python3 pyc 文件的使用详解

    今天小编就为大家分享一篇对Python3 pyc 文件的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • python结合shell自动创建kafka的连接器实战教程

    python结合shell自动创建kafka的连接器实战教程

    这篇文章主要介绍了python结合shell自动创建kafka的连接器,需要安装连接oracle的python包,获取oracle表信息,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Django使用HttpResponse返回图片并显示的方法

    Django使用HttpResponse返回图片并显示的方法

    今天小编就为大家分享一篇Django使用HttpResponse返回图片并显示的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python教程使用Chord包实现炫彩弦图示例

    Python教程使用Chord包实现炫彩弦图示例

    在可视化中,有时候会使用到弦图(Chord Diagram)来表示事物之间关系,本篇文章教大家如何使用Chord包实现炫彩弦图,有需要的朋友可以借鉴参考下,希望大家多多进步,早日升职加薪
    2021-09-09
  • Python Web程序部署到Ubuntu服务器上的方法

    Python Web程序部署到Ubuntu服务器上的方法

    在本文记录了我在Ubuntu中部署Flask Web站点的过程, 其中包括用户创建、代码获取、Python3环境的安装、虚拟环境设置、uWSGI启动程序设置,并将Nginx作为前端反向代理,需要的朋友参考下吧
    2018-02-02
  • CentOS 7下安装Python 3.5并与Python2.7兼容并存详解

    CentOS 7下安装Python 3.5并与Python2.7兼容并存详解

    这篇文章主要给大家介绍了在CentOS 7下安装Python 3.5并与Python2.7兼容并存的相关资料,文中将安装步骤介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-07-07
  • Python的json.loads() 方法与json.dumps()方法及使用小结

    Python的json.loads() 方法与json.dumps()方法及使用小结

    json.loads() 是一个非常有用的方法,它允许你在处理 JSON 数据时,将其转换为 Python 数据类型,以便于在代码中进行操作和处理,这篇文章给大家介绍Python的json.loads() 方法与json.dumps()方法及使用小结,感兴趣的朋友一起看看吧
    2024-03-03
  • 关于Python代码混淆和加密技术

    关于Python代码混淆和加密技术

    这篇文章主要介绍了关于Python代码混淆和加密技术,Python进行商业开发时, 需要有一定的安全意识, 为了不被轻易的逆向还原,混淆和加密就有所必要了,需要的朋友可以参考下
    2023-07-07
  • TensorFlow神经网络学习之张量与变量概念

    TensorFlow神经网络学习之张量与变量概念

    这篇文章主要为大家介绍了TensorFlow神经网络学习的基本知识张量与变量概念详解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • 使用Python创建简单的HTTP服务器的方法步骤

    使用Python创建简单的HTTP服务器的方法步骤

    这篇文章主要介绍了使用Python创建简单的HTTP服务器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论