python+selenium+chrome实现淘宝购物车秒杀自动结算


Posted in Python onJanuary 07, 2021

之前总是想要买aj,但是淘宝店铺每次发售手动抢的时候一般都会被黄牛抢走。。。最近毕业设计学习了一下python的东西,所以写了这么一个抢购的东西算是解决自己一个小小的愿望,这可是aj啊。
我会把内容写的尽量面向初学者,从头至尾的过程都会有所提及。代码也放在了后面

一、所需环境

Selenium

Selenium是一个开源的自动化测试工具。原理是通过模拟浏览器操作,还支持java,python,c#,php等主流的编程语言。

一般爬虫也支持Selenium,一些经过js渲染的内容和数据和ajax异步请求出来的数据通过Selenium就能很简单直观的爬取下来。但是Selenium的缺点也是显而易见的,相比于正则的匹配Selenium要加载浏览器以及更多的东西,他的执行速度比其他模块慢很多,所以若要保证速度,能不用Selenium就不要用Selenium吧。

web测试自动化:不同于单元测试和接口测试,web测试的自动化更加贴近于人的行为,通过对用户点击行为和文本输入行为等进行模拟,当web自动化登录成功后,就去获取这个数据进行断言。断言如果相等,测试通过;如果不相等,测试失败。用户可以看到某一项操作是否真的产生了,但是程序只能通过判断某些“证据”去判断之前的行为是否真的生效。

二、安装

下载Selenium并安装

安装对应浏览器的驱动程序 WebDriver

驱动程序要和自己电脑上的浏览器版本相对应,比如我使用的chrome浏览器是72版本的,就要下载ChromeDriver2.46这个版本。

python+selenium+chrome实现淘宝购物车秒杀自动结算

python+selenium+chrome实现淘宝购物车秒杀自动结算

下载解压之后配置环境变量Path即可。 Mac对应的环境变量配置可以参考这位老哥的文章进行配置

三、代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from selenium import webdriver
import datetime
import time


def login():
  # 打开淘宝登录页,并进行扫码登录
  browser.get("https://www.taobao.com")
  time.sleep(3)
  if browser.find_element_by_link_text("亲,请登录"):
    browser.find_element_by_link_text("亲,请登录").click()
    print("请在15秒内完成扫码")
    time.sleep(15)
    browser.get("https://cart.taobao.com/cart.htm")
  time.sleep(3)

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


def buy(times, choose):
  is_buyed = False
  # 点击购物车里全选按钮
  if choose == 2:
    print("请手动勾选需要购买的商品")
  while True:
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
    print('现在时间:', now)
    # 对比时间,时间到的话就点击结算
    if now > times:
      if choose == 1:
        while True:
          try:
            if browser.find_element_by_id("J_SelectAllcbx1"):
              browser.find_element_by_id("J_SelectAllcbx1").click()
              print('尝试全选')
              break
          except:
            print("找不到全选按钮")
      # 点击结算按钮
      try:
        if browser.find_element_by_id("J_Go"):
          browser.find_element_by_id("J_Go").click()
          print("结算成功")
      except:
        pass
      while True:
        try:
          if browser.find_element_by_link_text('提交订单') and is_buyed == False:
            browser.find_element_by_link_text('提交订单').click()
            now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
            print("抢购成功时间:%s" % now1)
        except:
          print("再次尝试提交订单")
      time.sleep(0.005)


if __name__ == "__main__":
  times = input("请输入抢购时间,格式如(2018-09-06 11:20:00.000000):")
  # 时间格式:"2018-09-06 11:20:00.000000"
  browser = webdriver.Chrome()
  browser.maximize_window()
  login()
  choose = input("到时间自动勾选购物车请输入“1”,否则输入“2”:")
  buy(times, choose)

最后run()一把就ok了!!

到此这篇关于python+selenium+chrome实现淘宝购物车秒杀自动结算的文章就介绍到这了,更多相关python+selenium+chrome 秒杀自动结算内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现ip查询示例
Mar 26 Python
Python面向对象编程基础解析(一)
Oct 26 Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 Python
Python面向对象总结及类与正则表达式详解
Apr 18 Python
python实现nao机器人身体躯干和腿部动作操作
Apr 29 Python
django框架创建应用操作示例
Sep 26 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
May 18 Python
Python pip安装模块提示错误解决方案
May 22 Python
python录音并调用百度语音识别接口的示例
Dec 01 Python
Pygame Rect区域位置的使用(图文)
Nov 17 Python
详解Python遍历列表时删除元素的正确做法
Jan 07 #Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
Jan 06 #Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
Jan 06 #Python
python 获取谷歌浏览器保存的密码
Jan 06 #Python
python实现PolynomialFeatures多项式的方法
Jan 06 #Python
pytorch中index_select()的用法详解
Jan 06 #Python
Python之京东商品秒杀的实现示例
Jan 06 #Python
You might like
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
PHP数组操作类实例
2015/07/11 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
微信小程序实现图片压缩功能
2018/01/26 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
Node.js API详解之 net模块实例分析
2020/05/18 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
Python实现两款计算器功能示例
2017/12/19 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
主治医师岗位职责
2013/12/10 职场文书
温馨提示标语
2014/06/26 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
股东授权委托书范文
2014/09/13 职场文书
文员岗位职责
2015/02/04 职场文书
Python图像处理之图像拼接
2021/04/28 Python
用Python可视化新冠疫情数据
2022/01/18 Python
Android自定义双向滑动控件
2022/04/19 Java/Android