MacOS: python+chrome淘宝购物车自动结算

selenium的安装

Selenium是一个开源的自动化测试工具,虽然相比其他的方法,速度不是特别快,但简单易用,小白也可以学会。

网上有不少用pip方式安装selenium的,其实selenium本质就是第三方库,我们可以采用pycharm自带方式来安装

先随意的建一个工程:点新建项目
在这里插入图片描述
改个名字 比如test在这里插入图片描述
右键点击文件夹,新建一个python文件在这里插入图片描述
点击文件(file )–> 默认设置(setting)
在这里插入图片描述
选好编译器,我安装了python3.7 ,也可以使用系统自带的2.7,在再点击加号,来搜索selenium库在这里插入图片描述
在这里插入图片描述
按下左下角的install package即可。

谷歌浏览器驱动chromedriver的安装

首先在电脑上安装完谷歌浏览器之后,需要确认下版本。
在右上角的设置-- 帮助–关于谷歌 中可以查看
在这里插入图片描述
驱动下载地址
在驱动下载页面找到自己浏览器对应的版本,比如我的是86.0.4240.80
在这里插入图片描述
找到自己对应的系统,这里下的是Mac64
在这里插入图片描述
下载完后解压,把里面的唯一一个文件chromedriver拖到/usr/local/bin/文件夹里

可以在终端上输入:

open /usr/local/bin/

在这里插入图片描述
记得双击打开一下这个文件,没什么用处,只是为了保证不会因为安全权限受限而导致不能使用。一般网上下载的都会被受限,需要用户主动打开一次授权一下。

配置环境变量

打开终端,输入: cd ~ 回车,会进入~文件夹

然后输入:touch .bash_profile,回车执行后,

再输入:open -e .bash_profile 回车

会在TextEdit中打开这个文件(如果以前没有配置过环境变量,那么这应该是一个空白文档)。如果有内容,请在结束符前输入,如果没有内容,请直接输入如下语句:

export PATH=$PATH:/usr/local/bin/chromedriver
在这里插入图片描述

测试一下

在刚才Pycharm中建立的python文件中输入代码

import os
from selenium import webdriver
import datetime
import time
chromedriver = r"/usr/local/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
buytime = "2020-11-11 00:00:00"
def login():
  driver.get("https://login.taobao.com/")
  print('已打开淘宝网')
  #设置等待时间,用于手动登录
  time.sleep(30)
  driver.get("https://cart.taobao.com/cart.htm")
  if driver.find_element_by_id("J_SelectAll1"):
    driver.find_element_by_id("J_SelectAll1").click()
  time.sleep(3)
  if driver.find_element_by_link_text("结 算"):
    driver.find_element_by_link_text("结 算").click();
  now = datetime.datetime.now()
  print('login success:', now.strftime('%Y-%m-%d %H:%M:%S'))
  buy_on_time(buytime)
def buy_on_time(buytime):
  while True:
    now = datetime.datetime.now()
    if now.strftime('%Y-%m-%d %H:%M:%S') == buytime:
      while True:
        try:
          s1 = time.time()
          driver.refresh()  #刷新页面
          driver.find_element_by_link_text('提交订单').click()
          s2 = time.time()
          print( '用时:{0}s'.format( s2 - s1 ) )
        except:
          time.sleep(0.07)
    time.sleep(0.1)
login()

注意:这里结算时间和地址都是根据实际情况需要更改的。

在这里插入图片描述

总结

selenium作为一种自动化检测框架,可以帮助人们实现自动点击交易等过程。所谓的秒杀时间就是 浏览器应时间+用例查找时间+代码执行时间+url发送时间。经过比对发现 “浏览器响应时间”是影响秒杀时间的主要因素,只有消除它才能进一步提升速度。

运行代码后会显示浏览器正在受自动测试软件控制。这一方法目前还是可行的,但之后可能会有相关的检测手段导致失效。仅供学习交流使用,勿作他用。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值