Python脚本做一个淘宝秒杀程序!
Python脚本做一个淘宝秒杀程序!
先上代码
from selenium import webdriver import datetime import time import os import sys import logging logging.basicConfig(format=%(asctime)s - %(levelname)s: %(message)s, datefmt=%Y-%m-%d %H:%M:%S, level=logging.WARNING) logging.warning(开始读取配置文件) #定义抢购时间 seckill_time = #在当前文件的相对路径,读取配置时间 path=os.path.abspath(.) #配置文件自己创建,里面只是一个时间(2021-01-01 01:00:00) f = open(path+/dateConfig.txt) index = f.readlines() for line in index: seckill_time=line f.close() seckill_time=seckill_time.replace(" ", "") #验证配置文件的时间格式是否正确,不正确就直接退出 try: time.strptime(seckill_time, "%Y-%m-%d %H:%M:%S") except: logging.warning(时间格式错误!) sys.exit() #使用谷歌模拟器(需要自行下载,并配置环境变量) logging.warning(正在打开浏览器!) driver = webdriver.Chrome() driver.maximize_window() driver.get(http://www.taobao.com) #为了防止出现滑块验证 模拟人的操作 我们可以暂停两秒 time.sleep(2) #找到登录按钮并点击 logging.warning(进入登录页面,请尽快登录) if driver.find_element_by_link_text("亲,请登录"): driver.find_element_by_link_text("亲,请登录").click() #循环验证是否登录成功 ifLongin = False while bool(1-ifLongin): time.sleep(3) # 打印当前页面URL now_url = driver.current_url #login判断是否停留在登录页面 if now_url.find(login.taobao.com)>=0: ifLongin = False logging.warning(等待登录...) else: ifLongin = True if ifLongin: logging.warning(登录成功!) #进入购物车 driver.find_element_by_id(J_MiniCart).click() time.sleep(1) try: #全选 driver.find_element_by_id(J_SelectAll1).click() except: logging.warning(购物车没有商品,请添加需要购买的商品到购物车后重试) sys.exit() time.sleep(1) #结算 driver.find_element_by_id(J_Go).click() time.sleep(1) #将抢购时间转换成能够进行对比的时间类型 datetime1 = datetime.datetime.strptime(seckill_time+.000001,%Y-%m-%d %H:%M:%S.%f) print("datetime1",datetime1) #开始循环对比,时间到了就进入付款页面 buy = False while bool(1-buy): datetime2 = datetime.datetime.now().strftime(%Y-%m-%d %H:%M:%S.%f) datetime2 = datetime.datetime.strptime(str(datetime2),%Y-%m-%d %H:%M:%S.%f) logging.warning("等待秒杀") if datetime2 >= datetime1: driver.find_element_by_link_text("提交订单").click() time.sleep(2) # 获取当前页面URL buy_url = driver.current_url #只要能够进入支付页面,就代表秒杀成功 if buy_url.find(alipay.com)>=0: logging.warning("秒杀成功,尽快付款!") else: logging.warning("秒杀失败!") buy = True else: # 循环阻塞时间自己根据情况调试 # 像那种秒无的商品,为了提高秒杀成功几率,建议不要这个阻塞(总之视情况而定吧) time.sleep(0.1)
实现原理大概就是利用selenium模拟用户操作操作浏览器
其中用到了谷歌插件,并配置到环境变量:
链接:https://pan.baidu.com/s/1T3p-8xrniIpJsWsVj-8BNg 提取码:4n86
附上源码、谷歌插件、以及打包好,可以直接使用的exe文件