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控制台中实现进度条功能
Nov 10 Python
python实现微信发送邮件关闭电脑功能
Feb 22 Python
高效使用Python字典的清单
Apr 04 Python
在Python中给Nan值更改为0的方法
Oct 30 Python
在unittest中使用 logging 模块记录测试数据的方法
Nov 30 Python
Django配置MySQL数据库的完整步骤
Sep 07 Python
pytorch实现mnist分类的示例讲解
Jan 10 Python
Python Celery异步任务队列使用方法解析
Aug 10 Python
python如何使用腾讯云发送短信
Sep 17 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
基于PyQt5制作一个群发邮件工具
Apr 08 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 中的一些经验积累
2006/10/09 PHP
PHP+DBM的同学录程序(2)
2006/10/09 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
JavaScript基础知识之数据类型
2012/08/06 Javascript
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
JavaScript中原型和原型链详解
2015/02/11 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
Python3实现Web网页图片下载
2016/01/28 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
大学三年的自我评价
2013/12/25 职场文书
中药专业毕业自荐书范文
2014/02/08 职场文书
交通处罚决定书
2015/06/24 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL
Golang gRPC HTTP协议转换示例
2022/06/16 Golang