我也不知道 学习第几天了,家里忙带孩子,工作忙任务,这个项目半成品终于好 了,加了个wxpython的gui,勉强能用,功能继续完善
第一记住一句免得麻烦大:64的环境导出来是64位的软件,32的环境导出来32位的软件,,,还是好多用32开发,因为64也能用,,,艾
打包的时候,注意,webdriver要单独复制到运行文件夹的,我搞忘了,忙了两天才解决问题
代码相对还是简单,,,只不过要注意假死的状态,,使用了多线程,稍微解决一下。
本来准备使用qt的,不过做到最后,不能更新界面和数据很是老火,,本来是快速开发,就没仔细研究,转到wxpython,,问题也还是多,不过还是出来了
以后还得继续研究
本来是利用项目开发,0基础,强行几天学习python,学习过程中深入解读代码,但是又有新项目入手,,,而且又要是快速开发,不过还是用python,加油,,
class GridFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent,size=(1200,800))
self.grid = wx.grid.Grid(self, -1)
self.grid.CreateGrid(15, 5)
self.grid.SetColLabelValue(0,----)
self.grid.SetDefaultColSize(180)
self.grid.SetDefaultRowSize(30)
self.yjszbtn = wx.Button(self, -1,label="一键设置")
self.yjszbtn.Bind(wx.EVT_BUTTON, self.yjsz)
self.tzsjtext = wx.TextCtrl(self, -1, "0")
self.tsxxtext = wx.TextCtrl(self, -1, "",size=(800,200),style=wx.TE_MULTILINE)
self.tzjetext=wx.TextCtrl(self, -1, "0")
self.startbtn = wx.Button(self, -1,label="开始投注")
self.startbtn.Bind(wx.EVT_BUTTON, self.startz)
self.sqwybtn = wx.Button(self, -1, label="启动网页")
self.sqwybtn.Bind(wx.EVT_BUTTON, self.qdwy)
self.stopbtn = wx.Button(self, -1,label="停止投注")
self.stopbtn.Bind(wx.EVT_BUTTON, self.stoptz)
self.Sizer = wx.GridBagSizer(4,7)
self.Sizer.Add(self.grid,span=(1,7),pos=(0,0),flag=wx.EXPAND)
self.Sizer.Add(self.yjszbtn, pos=(1, 0), flag=wx.EXPAND)
self.Sizer.Add(self.tzsjlable, pos=(1,1), flag=wx.EXPAND)
self.Sizer.Add(self.tzsjtext, pos=(1, 2), flag=wx.EXPAND)
self.Sizer.Add(self.tzjelable, pos=(1, 3), flag=wx.EXPAND)
self.Sizer.Add(self.resetbtn, pos=(3, 1), flag=wx.EXPAND)
self.Sizer.Add(self.tsxxtext, span=(1,7),pos=(2, 0), flag=wx.EXPAND)
for i in range(1, 16):
self.grid.SetCellValue(i - 1, 2, "0")
self.grid.SetCellValue(i - 1, 3, "0")
self.grid.SetCellValue(i - 1, 4, "0")
def qdwy(self,event):
print('qdwy')
file = open("bet365.log")
ii=0
flag=0
xtime=''
try:
ntp_client = ntplib.NTPClient()
response = ntp_client.request('pool.ntp.org')
xtime=time.strftime('%Y%m%d',time.localtime(response.tx_time))
print(xtime)
#这里做一个时间验证,获取网络时间,以后继续收费,,,想得好
flag=1
except:
flag=0
wx.MessageBox('网络不通或没有注册请联系开发人员', 'Info', wx.OK | wx.ICON_INFORMATION)
_thread.exit()
#本地时间
#xtime = time.strftime('%Y%m%d',time.localtime(time.time()))
while(ii<50):
line = file.readline()
# print(self.date2data(xtime))
# print(self.date2data(self.str2rq(line)))
try:
if self.date2data(xtime)<=self.date2data(self.str2rq(line)):
flag=2
break
except:
flag=0
ii=ii+1
if flag==0:
wx.MessageBox('网络不通或没有注册请联系开发人员', 'Info', wx.OK | wx.ICON_INFORMATION)
_thread.exit()
if flag==2:
Spider365.login_bet365()
def resetui(self, event):
for i in range(1, 16):
self.grid.SetCellValue(i - 1, 0, "")
self.grid.SetCellValue(i - 1, 1, "")
self.grid.SetCellValue(i - 1, 2, "0")
self.grid.SetCellValue(i - 1, 3, "0")
self.grid.SetCellValue(i - 1, 4, "0")
def date2data(self,date):
return int(date[0:4]*365)+int(date[4:6]*30)+int(date[6:8])
def yjsz(self,event):
for i in range(1,16):
self.grid.SetCellValue(i-1,2,self.tzsjtext.GetValue())
self.grid.SetCellValue(i-1 , 3, self.tzjetext.GetValue())
self.grid.SetCellValue(i - 1, 4, "0")
print('yjsz')
def tz(self,threadName, delay):
while (0 < 1):
i = 0
for item in self.getvalues():
# print(item)
if (item.__getitem__('tzzt') == '0') and (len((item.__getitem__('ls'))) > 0) and (
(len(item.__getitem__('qdmc'))) > 0):
item.__setitem__('tzzt', Spider365.bsxz_bet365(item.__getitem__('ls'), item.__getitem__('qdmc'),
item.__getitem__('tzsj'), item.__getitem__('tzzt'),
item.__getitem__('tzje')))
print('这是投注状态啊啊啊啊 ' + str(item.__getitem__('tzzt')))
self.grid.SetCellValue(i, 4, str(item.__getitem__('tzzt')))
if item.__getitem__('tzzt')==0:
self.tsxxtext.AppendText(time.strftime('%b %d %Y %H:%M:%S',time.localtime(time.time()))+item.__getitem__('ls')
+item.__getitem__('qdmc')
+'未投注'+'; ')
if item.__getitem__('tzzt')==1:
self.tsxxtext.AppendText(time.strftime('%b %d %Y %H:%M:%S',time.localtime(time.time()))+item.__getitem__('ls')
+ item.__getitem__('qdmc')
+ '已投注' + '; ')
with open("bet365.log", "a") as f:
ss=time.strftime('%b %d %Y %H:%M:%S',time.localtime(time.time()))+item.__getitem__('ls')+ item.__getitem__('qdmc')+ item.__getitem__('tzsj')+'已投注' + '; \n'
print(ss)
f.write(ss)
i = i + 1
time.sleep(1)
#这里是开始多线程,不然那界面要假死,,,,害的继续多多研究
def startz(self,event):
print('start')
_thread.start_new_thread(self.tz,('tzthread',0,))
def getvalues(self):
for i in range(1, 16):
yield {
'ls': self.grid.GetCellValue(i - 1, 0),
'qdmc': self.grid.GetCellValue(i - 1, 1),
'tzsj': self.grid.GetCellValue(i - 1, 2),
'tzje': self.grid.GetCellValue(i - 1, 3),
'tzzt':self.grid.GetCellValue(i - 1, 4)
}
# print(i)
def stoptz(self,event):
print('stp[')
_thread.exit()
def returnGrid(self):
return self.grid
if __name__ == '__main__':
app = wx.App(0)
frame = GridFrame(None)
frame.Show()
app.MainLoop()