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内存管理分析
Apr 08 Python
Python之str操作方法(详解)
Jun 19 Python
Python 装饰器使用详解
Jul 29 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
Feb 10 Python
TensorFlow实现简单卷积神经网络
May 24 Python
利用python实现对web服务器的目录探测的方法
Feb 26 Python
pandas 中对特征进行硬编码和onehot编码的实现
Dec 20 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
python mysql中in参数化说明
Jun 05 Python
Python应用实现双指数函数及拟合代码实例
Jun 19 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 Python
matplotlib绘制正余弦曲线图的实现
Feb 22 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 str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
jQuery 使用个人心得
2009/02/26 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
JavaScript错误处理
2015/02/03 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
在一个页面重复使用一个js函数的方法详解
2016/12/26 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
2018/09/30 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python网络爬虫学习笔记(1)
2018/04/09 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
测绘工程专业个人自我评价
2013/12/01 职场文书
夏季奶茶店创业计划书
2014/01/16 职场文书
企业宣传工作方案
2014/06/02 职场文书
安全施工标语
2014/06/07 职场文书
小学推普周活动总结
2015/05/07 职场文书
高中信息技术教学反思
2016/02/16 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
使用Springboot实现健身房管理系统
2021/07/01 Java/Android