python实现淘宝定时抢购简易版
前几天自己写了一个淘宝定时秒杀的代码,简易版的,原理很简单,首先获取淘宝服务器的时间,然后再通过模拟点击实现抢购,仅供娱乐。
获取淘宝服务器时间部分:
getTime.py:
import http.client
import time
if __name__ == '__main__':
def get_webservertime(host):
while True:
try:
conn = http.client.HTTPConnection(host)
conn.request("GET", "/")
r = conn.getresponse()
ts = r.getheader('date') # 获取http头date部分
break
except Exception as e:
print(e)
continue
# 将GMT时间转换成北京时间
ltime = time.strptime(ts[5:25], "%d %b %Y %H:%M:%S")
ttime = time.localtime(time.mktime(ltime) + 8 * 60 * 60)
dat = "%u-%02u-%02u" % (ttime.tm_year, ttime.tm_mon, ttime.tm_mday)
tm = "%02u:%02u:%02u" % (ttime.tm_hour, ttime.tm_min, ttime.tm_sec)
timeStr = dat + ' ' + tm
return timeStr
主程序部分
mian.py:
import getTime
from selenium import webdriver
import time
print('请输入抢购开始时间:格式 2020-02-27 10:00:00')
runTime = input()
print('请登录淘宝,将物品加入购物车,在购物车勾选并等待')
time.sleep(3)
driver = webdriver.Firefox() #打开火狐浏览器
driver.get('http://www.taobao.com/')
#窗口最大化显示
driver.maximize_window()
time.sleep(15)
while True:
tbTime = getTime.get_webservertime('www.taobao.com')
#判断时间是否达到
if(runTime > tbTime):
print('时间未到请等待')
time.sleep(0.05)
elif(runTime <= tbTime):
print('时间到!!!')
break;
else:
print('时间格式出错,程序退出')
startTime = time.time()
#开始抢购
while True:
#找到结算并单击
try:
if driver.find_element_by_id('J_Go'):
driver.find_element_by_id('J_Go').click()
break
time.sleep(0.05)
except:
print('\'结算\'按钮未找到,继续等待')
time.sleep(0.05)
while True:
#找到提交订单并点击
try:
if driver.find_element_by_class_name('go-btn'):
driver.find_element_by_class_name('go-btn').click()
break
time.sleep(0.05)
except:
print('\'提交订单\'按钮未找到,继续等待')
time.sleep(0.05)
endTime = time.time()
totalTime = endTime - startTime
print('抢购耗时'+str(totalTime)+'秒')
time.sleep(5)
if driver.find_element_by_id('J_authSubmit'):
print('订单提交成功,快去支付吧')
else:
print('订单提交失败,程序退出')