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 23 Python
如何运行Python程序的方法
Apr 21 Python
python进阶教程之词典、字典、dict
Aug 29 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
pandas 层次化索引的实现方法
Jul 06 Python
Python之Numpy的超实用基础详细教程
Oct 23 Python
numpy按列连接两个维数不同的数组方式
Dec 06 Python
python如何删除文件、目录
Jun 23 Python
利用python 下载bilibili视频
Nov 13 Python
python实现登录与注册系统
Nov 30 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 Python
python异常中else的实例用法
Jun 15 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
php实现websocket实时消息推送
2018/03/30 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
cookie.js 加载顺序问题怎么才有效
2013/07/31 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
python实现顺序表的简单代码
2018/09/28 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
基于python实现计算两组数据P值
2020/07/10 Python
python用Configobj模块读取配置文件
2020/09/26 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
蛋白质世界:Protein World
2017/11/23 全球购物
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
商务英语广告词大全
2014/03/18 职场文书
综合实践活动总结
2014/05/05 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
体育口号大全
2014/06/18 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
企业介绍信范文
2015/01/30 职场文书
如何拟写通知正文?
2019/04/02 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书