python爬取学校体育部的跑超数据并用Tkinter写出应用并进行封装生成exe文件
来源:互联网 发布:sqlserver is null 编辑:程序博客网 时间:2024/05/01 05:25
之前看了python,自己写了个小应用软件通过爬虫获取学校体育部的跑操数据(实时更新)并用python自带的Tkinter写了个小应用并用PyInstaller封装生成exe文件,然后就可以用这个小软件查自己和室友的跑操记录了。
代码里涉及的隐私信息用*代替了;为大家阅读带来不便请见谅;
代码如下:
#-*-coding:utf-8-*-from Tkinter import*import osimport timeimport requeststxt=[]top = Tk()label = Label(top,text='604-1全体成员跑操查询-lin')label.pack()label2 = Label(top,text="现在的时间是:%s"%time.ctime())label2.pack()dirfm = Frame() #导入一个框架把列表框和滚动条连接起来dirsb = Scrollbar(dirfm)dirsb.pack(side = RIGHT,fill=Y)dirs = Listbox(dirfm,height=20, width = 50,yscrollcommand=dirsb.set)dirs.pack(side=LEFT,fill=BOTH)dirfm.pack()"""上面这一段是Tkinter的界面设计代码,包括了滚动条列表框等页面展示在下面~"""def Searchtimes4(): #此函数用来爬取数据,并在列表框中输出,下面的Searchtimes1235()形式都是一样的; #mylist=['hello','world'] hea = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0', 'Referer' : 'http://zc*********.cn/'} url = 'http://zc*************ent' data ={ 'authentictyToken':"deb4cbb******8ef757c198a075e7", 'number':"******", 'name':"***"} #data构造表单,这里可以用火狐来查看表单包括哪些内容; loginhtml = requests.post(url,data = data,headers = hea).text res_tr = r'<td\sarg\=(.*?)</td>'#正则表达式用于筛选数据; m_tr = re.findall(res_tr,loginhtml,re.S|re.M) dirs.insert(END,"*的次数:") res_ptr = r'<span\sclass\=\"badge\">(.*?)</span>'#同样是正则表达式 m_tr1 = re.findall(res_ptr,loginhtml,re.S|re.M) for lines in m_tr1: dirs.insert(END,lines) for line in m_tr: #在列表框按行输出 dirs.insert(END,line)def Searchtimes1(): #mylist=['hello','world'] #测试时用的例子,这里已经屏蔽掉了 hea = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0', 'Referer' : 'http://z********du.cn/'} url = 'http://zccx***********dent' data ={ 'authentictyToken':"deb4cbb***********98a075e7", 'number':"B********", 'name':"***"} loginhtml = requests.post(url,data = data,headers = hea).text res_tr = r'<td\sarg\=(.*?)</td>' m_tr = re.findall(res_tr,loginhtml,re.S|re.M) dirs.insert(END,"*的次数:") res_ptr = r'<span\sclass\=\"badge\">(.*?)</span>' m_tr1 = re.findall(res_ptr,loginhtml,re.S|re.M) for lines in m_tr1: dirs.insert(END,lines) for line in m_tr: dirs.insert(END,line)def Searchtimes2(): #mylist=['hello','world'] hea = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0', 'Referer' : 'ht**********.cn/'} url = 'http://zc*******************' data ={ 'authentictyToken':"de*************075e7", 'number':"********", 'name':"***"} loginhtml = requests.post(url,data = data,headers = hea).text res_tr = r'<td\sarg\=(.*?)</td>' m_tr = re.findall(res_tr,loginhtml,re.S|re.M) dirs.insert(END,"*的次数:") res_ptr = r'<span\sclass\=\"badge\">(.*?)</span>' m_tr1 = re.findall(res_ptr,loginhtml,re.S|re.M) for lines in m_tr1: dirs.insert(END,lines) for line in m_tr: dirs.insert(END,line)def Searchtimes3(): #mylist=['hello','world'] hea = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0', 'Referer' : 'http**********************'} url = 'http******************' data ={ 'authentictyToken':"deb******************", 'number':"******", 'name':"***"} loginhtml = requests.post(url,data = data,headers = hea).text res_tr = r'<td\sarg\=(.*?)</td>' m_tr = re.findall(res_tr,loginhtml,re.S|re.M) dirs.insert(END,"*的次数:") res_ptr = r'<span\sclass\=\"badge\">(.*?)</span>' m_tr1 = re.findall(res_ptr,loginhtml,re.S|re.M) for lines in m_tr1: dirs.insert(END,lines) for line in m_tr: dirs.insert(END,line)def Searchtimes5(): #mylist=['hello','world'] hea = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0', 'Referer' : 'http://z***********n/'} url = 'http***************' data ={ 'authentictyToken':"deb*******************", 'number':"*******", 'name':"***"} loginhtml = requests.post(url,data = data,headers = hea).text res_tr = r'<td\sarg\=(.*?)</td>' m_tr = re.findall(res_tr,loginhtml,re.S|re.M) dirs.insert(END,"***的次数:") res_ptr = r'<span\sclass\=\"badge\">(.*?)</span>' m_tr1 = re.findall(res_ptr,loginhtml,re.S|re.M) for lines in m_tr1: dirs.insert(END,lines) for line in m_tr: dirs.insert(END,line)dirsb.config(command=dirs.yview) """这里的代码可以用python字典把形式弄的简便点,用字典就不用调用5个函数,直接在一个函数中利用不同数据的表单看起来比较干净,不过因为我想要查的人不多,而且这样写比较方便,直接改一下函数post的表单里的两个值,学号和姓名就好了,就没有深入考虑用python的字典了"""dosearch = Button(top,text = '查询截止到日前*的次数',command = Searchtimes1,fg='blue')dosearch.pack()dosearch = Button(top,text = '查询截止到日前*的次数',command = Searchtimes2,fg='blue')dosearch.pack()dosearch = Button(top,text = '查询截止到日前*的次数',command = Searchtimes3,fg='blue')dosearch.pack()dosearch = Button(top,text = '查询截止到日前*的次数',command = Searchtimes4,fg='blue')dosearch.pack()dosearch = Button(top,text = '查询截止到日前*的次数',command = Searchtimes5,fg='blue')dosearch.pack()#quitesearch = Button(top,text = '退出',command = top.quit)#quitesearch.pack() """这两行代码是加一个退出的控件,不过感觉没必要就没加了"""mainloop()
运行界面:
另外还有可以把代码加到最近流行的图灵机器人里面,然后把图灵机器人接到群里,这样只要回复查跑超数据就可以自动给出回复了,接到手机qq或微信里比在电脑用exe方便多了;
大学生活的小记录,写到这里了,有机会再更新有关Tkinter和PyInstaller的使用博文;有问题可以留言,有时间我一定会回的;
0 0
- python爬取学校体育部的跑超数据并用Tkinter写出应用并进行封装生成exe文件
- 使用py2exe对Python文件进行封装生成exe文件
- Python爬虫---爬取天眼查数据(下)tkinter和exe打包
- 【Python】爬图片,Py2exe打包成EXE,并用inno setup生成安装文件
- java_读取文件并对数据进行排序并写出
- Python边学边用 - 学校新闻爬取并通过邮件发送
- Python简单的爬取网页信息并生成json文件与乱码解决小记
- Python生成exe文件
- Python 生成EXE文件
- Python生成exe文件
- python 日常笔记--模拟爬取学校的官网
- 爬取广州链家租房信息,并用tableau进行数据分析
- 生成python程序的exe文件
- 使用python爬取学校门户网站相关信息并格式化输出
- Python 爬取学校课程表和成绩
- 利用python3.4爬取学校教务系统,并封装成api供app调用(一)
- Python从同一文件进行数据不落地的取高频处理
- python打生成exe文件
- 关于es6中的import,export, export default
- java中Comparable与Comparator的区别与用法
- 串的模式匹配-BF算法
- Java从键盘接收单个字符并转化为Unicode
- 010-图像移动与对齐
- python爬取学校体育部的跑超数据并用Tkinter写出应用并进行封装生成exe文件
- fatal: unable to access : The requested URL returned error: 403
- [BZOJ3223][Tyvj1729]文艺平衡树
- 四元傅里叶显著性图-四元数-Matlab编程
- Android多线程多进程学习网址
- 图像处理之简化色彩(含OpenCV代码)
- int64
- 我的第二次RNAseq分析
- LCD驱动程序(四)测试