一、麻雀雖小,五臟俱全
本系統用到的python庫:
tkinter——用於創建windows窗體
requests——用於請求獲取數據
PIL——用於處理驗證碼圖片
lxml——用於處理獲得的數據
xlwt——用於將數據保存爲Excel文件
pyinstaller——用於將python文件轉爲exe文件
二、思維導圖
1)分析需求,建立大致方向
2)學習相關知識,學以致用
3)分析網頁數據,並記錄關鍵點
4)建立測試代碼,得到滿意結果爲止
5)根據需求建立窗體大致模型
6)組合代碼,不斷運行
7)處理bug
8)生成exe
9)測試exe
10)分享exe
三、經驗總結
1、窗體問題
1)創建窗體
from tkinter import *
root = Tk()
root.title("成績查詢系統") #標題
root.geometry('360x300')
root.maxsize(360,300) # 限制窗口大小
root.minsize(360,300)
root.mainloop()
簡簡單單五行代碼就創建了一個不含任何控件的大小爲360x300(中間爲小寫的x)的窗體
-----------窗體屬性---------
2)窗體中的控件
#定義退出按鈕命令
def exit():
root.quit()
btn1 = Button(root, text='退出系統', command=exit)
btn1.grid(column=0,row=0)
定義了一個按鈕,放在root窗體,顯示名稱爲 退出系統, command理解爲按鈕點擊時執行的函數;.grid()爲一種排列方式,另外還有 .place() , .pack()
-----------------窗體控件---------------------
3)動態設置控件屬性(文本)
zh = Entry(root)
zh.grid(column=3, row=2)
zh.insert(0,'2016200000') #通過該語句可向輸入框中插入字符串
keyword = Entry(root,show='*') # 若爲密碼則輸入的字符將顯示爲 *
keyword.grid(column=3, row=4)
keyword['show']='' # 該語句會修改顯示方式(即顯示輸入的文本)
4)製作表格
from tkinter import ttk, messagebox
from tkinter import *
root = Tk()
root.title('全部成績')
root.geometry('800x600')
root.maxsize(800,600)
root.minsize(800,600)
columns = ('學期','科目','學分','課程屬性','成績')
tv = ttk.Treeview(root, show='headings',columns=columns)
tv.column('學期', width=200, anchor='center')
tv.column('科目',width=300,anchor='center')
tv.column('學分',width=100,anchor='center')
tv.column('課程屬性',width=100,anchor='center')
tv.column('成績',width=100,anchor='center')
tv.heading('學期', text='學期')
tv.heading('科目',text='科目')
tv.heading('學分',text='學分')
tv.heading('課程屬性',text='課程屬性')
tv.heading('成績',text='成績')
tv.pack(side=LEFT,fill=BOTH)
root.mainloop()
2、爬蟲問題
import requests
#請求頭
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0'
}
#請求數據
data = {
'zjh':'',
'mm':'',
'v_yzm':''
}
brower = requests.session() # 創建session對象
cookie = brower.cookies.get_dict() # 獲取cookie值
res = brower.post(url1,data=data,headers=header,cookies=cookie).text
3、保存到Excel
import xlwt
columns = ('學期','科目','學分','課程屬性','成績')
dir = '我的成績單.xlsx' # 文件路徑
f = xlwt.Workbook() # 創建工作簿
sheet1 = f.add_sheet('成績單') #創建成績單工作表
sheet1.col(0).width = 256*50 #設置單元格寬度
sheet1.col(1).width = 256 * 50
sheet1.col(2).width = 256 * 10
sheet1.col(3).width = 256 * 10
sheet1.col(4).width = 256 * 10
row0 = list(columns)
for i in range(5):
sheet1.write(0,i,row0[i])# 向工作表第一行寫數據作爲表頭
f.save(dir) # 保存文件到指定路徑
4、生成exe
1)安裝pyinstaller
pip install pyinstaller
2)打包
cmd 命令行切換到項目目錄,執行下列語句
pyinstaller -F -w main.py # 此處應注意大小寫
最後一行看到successful字樣,即可在項目根目錄的dist目錄下找到exe文件,雙擊即可執行
3)部分錯誤
若exe文件因錯誤無法打開
嘗試以下語句
pyinstaller -F main.py # 此處應注意大小寫
完成後雙擊exe文件會有一個黑框一閃而過,需要用到截屏將黑框截圖,裏面顯示了錯誤信息,根據錯誤信息對症下藥。
-------------參數說明---------------
四、全部代碼
1、代碼已上傳到GitHub
2、pyinstaller 生成的exe文件包
鏈接:https://pan.baidu.com/s/1LClBmu54FlwvZcOvgbk2-A 提取碼:izp3
複製這段內容後打開百度網盤手機App,操作更方便哦