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实现360皮肤按钮控件示例
Feb 21 Python
PYTHON 中使用 GLOBAL引发的一系列问题
Oct 12 Python
python数据类型_元组、字典常用操作方法(介绍)
May 30 Python
Python引用传值概念与用法实例小结
Oct 07 Python
Python爬虫常用库的安装及其环境配置
Sep 19 Python
Python基础之文件读取的讲解
Feb 16 Python
使用django实现一个代码发布系统
Jul 18 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
pycharm激活码有效到2020年11月底
Sep 18 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
Apr 01 Python
Jupyter Notebook输出矢量图实例
Apr 14 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 Xdebug的安装与使用详解
2013/06/20 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
PHP调用Mailgun发送邮件的方法
2017/05/04 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
深入理解Python3 内置函数大全
2017/11/23 Python
python实现决策树分类
2018/08/30 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
Python列表list操作相关知识小结
2020/01/29 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
拉飞逸官网:Lafayette 148 New York
2020/07/15 全球购物
大四自我鉴定
2014/02/08 职场文书
网络信息安全承诺书
2014/03/26 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
项目安全员岗位职责
2015/02/15 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
教你如何使用Python下载B站视频的详细教程
2021/04/29 Python
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
Java中try catch处理异常示例
2021/12/06 Java/Android