淘宝秒杀软件怎么写(免费教你用Python打造淘宝秒杀脚本)
闲的无聊把最近学的内容和查阅的文档资料结合写了个简单的淘宝秒杀脚本,测试结果可以在2s左右完成下单,当然肯定和post方式的秒杀脚本没法比,当自己玩玩还是可以的
主要使用了tkinter库,selenium,datetime和time库
先导入需要使用的库,没有的话直接pip install即可
导入方式有多种,选择符合自己习惯的即可
from tkinter import *
import tkinter.font as tkFont
from selenium import webdriver
import datetimeimport time
采用tkinter库创建Gui界面,虽然tkinter库创建的gui界面真的没啥颜值,但它简单啊。。。
需要下载chromedriver放在python安装目录的script文件下,因为脚本是通过操控chrome浏览器的驱动完成的,python安装目录的查看方式为
chromedriver的版本需要与chrome浏览器的版本对应,chrome浏览器版本查看方式
chromedriver下载地址使用其他浏览器的方式类似
以下是窗口函数,里面的图标选择自己喜欢的图片就行,格式是.ico
class Gui(object):
"""界面"""
def __init__(self,init_window_name):
self.init_window_name = init_window_name
#设置窗口 def set_init_window(self):
#界面参数 self.init_window_name.title("淘宝秒杀") #窗口名
self.init_window_name.geometry('600x500+400+150') #窗口大小和初始出现位置
self.init_window_name["bg"] = "bisque" #窗口背景色
self.init_window_name.attributes("-alpha",0.9) #虚化,值越小虚化程度越高
self.init_window_name.iconbitmap("tb.ico")
#标签 self.label1=Label(self.init_window_name, text="请输入秒杀时间",bg='bisque',font=('隶书',13))
self.label1.place(relx=0.1,rely=0.1)
self.label2=Label(self.init_window_name, text="提示(●'◡'●)",bg='bisque',font=('隶书',12))
self.label2.place(relx=0.35,rely=0.2)
#文本框 self.text1=Text(self.init_window_name, width=20, height=1)
self.text1.place(relx=0.35,rely=0.108)
self.text1.insert(1.0,'2020-08-09 00:00:00') #时间格式
self.text2=Text(self.init_window_name, width=60, height=20)
self.text2.place(relx=0.1,rely=0.25)
#按钮 self.button1=Button(self.init_window_name, text="开始", bg="Cornsilk", width=8,height=1,command=self.run)
self.button1.place(relx=0.65,rely=0.09)
功能函数,模拟鼠标操作完成登录,选择购物车里的商品和进行结算
def login(self):
# 打开Chrome浏览器
self.browser = webdriver.Chrome()
# 打开淘宝首页,通过扫码登录 self.browser.get("https://www.taobao.com")
time.sleep(3)
if self.browser.find_element_by_link_text("亲,请登录"):
self.browser.find_element_by_link_text("亲,请登录").click()
time.sleep(10)
def picking(self,method):
# 打开购物车列表页面 self.browser.get("https://cart.taobao.com/cart.htm")
time.sleep(3)
# 是否全选购物车 if method == 0:
while True:
if self.browser.find_element_by_id("J_SelectAll1"):
self.browser.find_element_by_id("J_SelectAll1").click()
break
else:
time.sleep(5)
def buy(self,times): #参数times为时间 格式为 2020-08-05 23:00:00
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
# 对比时间,时间到的话就点击结算 if now > times:
# 点击结算按钮 while True:
try:
if self.browser.find_element_by_link_text("结 算"):
self.browser.find_element_by_link_text("结 算").click()
break
except: pass # 点击提交订单按钮 while True:
try:
if self.browser.find_element_by_link_text('提交订单'):
self.browser.find_element_by_link_text('提交订单').click()
except: pass time.sleep(0.01)
执行函数,主要是为了绑定Gui界面上的button
实例化一个窗口,以及维持窗口的运行
def gui_start():
"""运行函数"""
init_window = Tk() #实例化出一个父窗口
mainpage=Gui(init_window) # 设置根窗口默认属性
mainpage.set_init_window()
init_window.mainloop() #父窗口进入事件循环
gui_start()def run(self):
"""运行函数"""
self.login()
self.picking(0)
times=self.text1.get(1.0,END)
self.buy(times)
实例化一个窗口,以及维持窗口的运行
def gui_start():
"""运行函数"""
init_window = Tk() #实例化出一个父窗口
mainpage=Gui(init_window) # 设置根窗口默认属性
mainpage.set_init_window()
init_window.mainloop() #父窗口进入事件循环
gui_start()
然后进行打包操作,py文件和图标的ico文件放在同一目录下,打包我采用的是pyinstaller,没有的话同理pip install pyinstaller
之前也试过py2exe打包,效果不太好,果断转pyinstaller了打包方式 :切换到py文件所在的目录下pyinstaller -F –ico==tb.ico xxx.py –noconsoletb.ico是生成exe文件图标的图片,也可不用xxx.py是py文件名noconsole(取消exe文件执行时的dos窗口,对于没有Gui界面的程序来说这一步不能有)
之后在桌面生成快捷方式
点击运行