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 相关文章推荐
11个并不被常用但对开发非常有帮助的Python库
Mar 31 Python
python3实现ftp服务功能(服务端 For Linux)
Mar 24 Python
python语音识别实践之百度语音API
Aug 30 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
FFrpc python客户端lib使用解析
Aug 24 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
Sep 29 Python
python中dict()的高级用法实现
Nov 13 Python
pytorch实现对输入超过三通道的数据进行训练
Jan 15 Python
使用Bazel编译TensorBoard教程
Feb 15 Python
python 实现体质指数BMI计算
May 26 Python
python中如何对多变量连续赋值
Jun 03 Python
Python实现单例模式的5种方法
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
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
extjs render 用法介绍
2013/09/11 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
js中this用法实例详解
2015/05/05 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
2017/08/24 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python datetime时间格式化去掉前导0
2014/07/31 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
Django用户认证系统 User对象解析
2019/08/02 Python
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
小学生春游活动方案
2014/08/20 职场文书
八项规定对照检查材料
2014/08/31 职场文书
2014年社区工作总结
2014/11/18 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
春节慰问简报
2015/07/21 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python
解决golang在import自己的包报错的问题
2021/04/29 Golang
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript