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 相关文章推荐
c++生成dll使用python调用dll的方法
Jan 20 Python
浅谈Python 的枚举 Enum
Jun 12 Python
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 Python
kali中python版本的切换方法
Jul 11 Python
Python实现使用dir获取类的方法列表
Dec 24 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 Python
Pandas数据分析的一些常用小技巧
Feb 07 Python
Python爬虫之爬取二手房信息
Apr 27 Python
总结Python常用的魔法方法
May 25 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导出CSV抽象类实例
2014/09/24 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
prototype 的说明 js类
2006/09/07 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
jQuery 选择符详细介绍及整理
2016/12/02 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
nodejs同步调用获取mysql数据时遇到的大坑
2019/03/02 NodeJs
javascript实现小型区块链功能
2019/04/03 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
Python爬虫实现百度图片自动下载
2018/02/04 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
2021/02/18 Python
施工员岗位职责
2014/03/16 职场文书
销售主管竞聘书
2014/03/31 职场文书
环保倡议书50字
2014/05/15 职场文书
Golang数据类型和相互转换
2022/04/12 Golang