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文件
