摘要:代碼思路通過(guò)獲取輸入內(nèi)容股票代碼,然后通過(guò)按鍵添加,按鍵刪除,添加在列表中的代碼都能通過(guò)查詢按鈕獲取到最新的股票信息。唯一的遺憾是沒(méi)有實(shí)現(xiàn)手動(dòng)選擇更新頻率。當(dāng)然使用也是沒(méi)問(wèn)題噠直接得到的就是格式的則需要轉(zhuǎn)換格式簡(jiǎn)易股票查詢不足之處請(qǐng)見(jiàn)諒
繼續(xù)練習(xí)tkinter,順便學(xué)習(xí)如何抓取網(wǎng)頁(yè)內(nèi)容。
使用urllib和requests都能得到url中的內(nèi)容,有一丁點(diǎn)兒的區(qū)別。
代碼思路:通過(guò)Entry獲取輸入內(nèi)容(股票代碼),然后通過(guò)Add按鍵添加,Del按鍵刪除,添加在列表中的代碼都能通過(guò)查詢按鈕獲取到最新的股票信息。唯一的遺憾是沒(méi)有實(shí)現(xiàn)手動(dòng)選擇更新頻率。
與上一篇內(nèi)容有驚人的相似。
獲取網(wǎng)頁(yè)內(nèi)容之前做的工作:
1.分析需要獲取的網(wǎng)頁(yè)
2.打開(kāi)chrome瀏覽器,點(diǎn)擊右鍵查看,網(wǎng)頁(yè)代碼中找到Network,可以看到出現(xiàn)的鏈接及協(xié)議
3.決定獲取的方式,可以根據(jù)對(duì)網(wǎng)頁(yè)的分析結(jié)果,采用匹配策略
import urllib.request #import requests import tkinter from tkinter import * class StockParser(): def __init__(self,code_data,edit): self.stock_data = code_data self.edit=edit if self.stock_data.split(""")[1] =="": pass else: print(self.stock_data.split(""")[1]) self.stock_data=self.stock_data.split(""")[1] name = self.stock_data.split(",")[0] opening_price = float(self.stock_data.split(",")[1]) closing_price = float(self.stock_data.split(",")[2]) price = float(self.stock_data.split(",")[3]) high = float(self.stock_data.split(",")[4]) low = float(self.stock_data.split(",")[5]) self.edit.insert(END,[name,opening_price,closing_price,high,low,price,]) class Window: def __init__(self, root): self.root = root # 創(chuàng)建組件 self.entryUrl = tkinter.Entry(root,width = 30) self.entryUrl.place(x = 65, y = 15) self.get = tkinter.Button(root,text = "查詢", command = self.Get) self.get.place(x = 350, y = 15) self.add = tkinter.Button(root,text = "添加", command = self.Add) self.delete = tkinter.Button(root,text = "刪除", command = self.Del) self.add.place(x = 80, y = 55) self.delete.place(x=120,y=55) #添加布局框 下面的self.edit, self.scrollbar是插入在frame中的哦 self.frame = tkinter.Frame(root, bd=2) self.frame.place(x=200,y = 90) self.scrollbar = tkinter.Scrollbar(self.frame) self.edit = tkinter.Listbox(self.frame,yscrollcommand = self.scrollbar.set, width = 50, height = 22) self.scrollbar.config(command=self.edit.yview) self.edit.grid(row=1,column=2)#這里用了grid,可以學(xué)習(xí)一下它的用法 self.scrollbar.grid(row=1,column=3,sticky="ew") self.indicate=tkinter.Label(root,text="(Please input stock code:sh000000)",fg="red") #這里是完全沒(méi)有改動(dòng),沿用上一節(jié) self.indicate.place(x=65,y=35) self.StockList=[] def ListUpdate(self): self.lb=tkinter.Listbox(self.root,selectmode = BROWSE) for code in self.StockList: self.lb.insert(END,code) self.lb.pack() self.lb.place(x=50,y=90) def Add(self): code = self.entryUrl.get() if re.match(r"w{2}d{6}$",code) and code not in self.StockList: self.StockList.append(code) else: pass self.ListUpdate() def Del(self): code=self.entryUrl.get() if code in self.StockList: self.StockList.remove(code) self.ListUpdate() def Get(self): if self.edit.get(0): print(self.edit.get(0)) self.edit.delete(0,END) self.edit.insert(END,["名 字","開(kāi)盤(pán)價(jià)","閉盤(pán)價(jià)","最高","最低","當(dāng)前價(jià)格"]) for code in self.StockList: url="http://hq.sinajs.cn/list=%s" % (code,) page=urllib.request.urlopen(url) #為什么urllib不行呢? html= page.read() #記住這樣得到的是html,必要是需要用HTMLParser解析,或者手動(dòng)解析。 stock_data=html.decode("gb2312") #r = requests.get(url)#當(dāng)然使用requests也是沒(méi)問(wèn)題噠 #stock_data= r.text #text直接得到的就是str格式的 #stock_content=r.content.decode("gb2312")#content則需要轉(zhuǎn)換格式 hp = StockParser(stock_data,self.edit) def main(): root = tkinter.Tk() root.title("簡(jiǎn)易股票查詢") window = Window(root) root.minsize(600,500) root.maxsize(600,500) root.mainloop() if __name__ =="__main__": main()
不足之處請(qǐng)見(jiàn)諒
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/38347.html
摘要:,庫(kù)的使用,注意已經(jīng)與有了很大不同。對(duì)于下面的,定義了一些窗口屬性,接下來(lái)在代碼中我會(huì)簡(jiǎn)單記錄一下它的用法。 這次練習(xí)的題目是實(shí)現(xiàn)一個(gè)簡(jiǎn)單的RSS功能,需要了解的知識(shí)點(diǎn): tkinter,在上一篇《簡(jiǎn)單的記事本》中已經(jīng)了解了一些tkinter的用法,在這里延續(xù)了上一篇,加深一下印象。 urllib,HTMLPaser庫(kù)的使用,注意python3已經(jīng)與python2有了很大不同。 #...
摘要:已獲原作者授權(quán)原系列地址下面我們將以中最簡(jiǎn)單的控件控件開(kāi)始這個(gè)系列的教程在中控件用以顯示文字和圖片通常被用來(lái)展示信息而非與用戶交互譯者注也可以綁定點(diǎn)擊等事件只是通常不這么用程序員的教程怎么能少了我們尊重這個(gè)傳統(tǒng)但我們不說(shuō)讓我們來(lái)秀出吧下面的 已獲原作者授權(quán). 原系列地址: Python Tkinter Hello Tkinter Label 下面我們將以 Tkinter 中最簡(jiǎn)單的控...
摘要:最近在練習(xí)一個(gè)關(guān)于項(xiàng)目的列表,拿到列表看到這是要實(shí)現(xiàn)一個(gè)記事本功能,剛開(kāi)始拿到題目真有點(diǎn)懵。尤其是試驗(yàn)之后發(fā)現(xiàn)一定要用類實(shí)現(xiàn)起來(lái)才簡(jiǎn)單一些,對(duì)于這點(diǎn)類,,要知道本人已經(jīng)接觸語(yǔ)言多年,但對(duì)于面向?qū)ο筮€是一竅不通。 最近在練習(xí)一個(gè)關(guān)于python項(xiàng)目的列表,拿到列表看到這是要實(shí)現(xiàn)一個(gè)記事本功能,剛開(kāi)始拿到題目真有點(diǎn)懵。雖然用python實(shí)現(xiàn)excel的處理已經(jīng)很熟悉了,且已經(jīng)把python...
摘要:目標(biāo)很簡(jiǎn)單,因?yàn)槲蚁胍酪幌伦C券化率,然后可視化輸出結(jié)果。證券化率的基礎(chǔ)就是上市公司的總市值,對(duì)于證券化率其實(shí)還蠻多說(shuō)法的,比如雪球的這篇文。我們可以利用這個(gè)回調(diào)函數(shù)來(lái)顯示當(dāng)前的下載進(jìn)度。 寫(xiě)在前面的叨叨 折騰了這么久,我終于在喝完一聽(tīng)快樂(lè)肥宅水后下定決心來(lái)學(xué)習(xí)寫(xiě)爬蟲(chóng)了。目標(biāo)很簡(jiǎn)單,因?yàn)槲蚁胍酪幌伦C券化率,然后可視化輸出結(jié)果。證券化率的基礎(chǔ)就是上市公司的總市值,對(duì)于證券化率其實(shí)還蠻多...
摘要:摘要本文是作者看慕課網(wǎng)學(xué)習(xí)記錄筆記,內(nèi)容技術(shù)水準(zhǔn)是入門(mén),大佬看到請(qǐng)輕言指點(diǎn),手下留情介紹人工智能的基本概念和邏輯體系研究?jī)煞N麵分類算法通過(guò)運(yùn)用分類算法,實(shí)現(xiàn)只有一層的神經(jīng)網(wǎng)絡(luò)介紹分類算法的理論基礎(chǔ)機(jī)器學(xué)習(xí)的本質(zhì)模擬人的神經(jīng)元神經(jīng)元人工神經(jīng)元 摘要 本文是作者看慕課網(wǎng)學(xué)習(xí)記錄筆記,內(nèi)容技術(shù)水準(zhǔn)是入門(mén),大佬看到請(qǐng)輕言指點(diǎn),手下留情 介紹人工智能的基本概念和邏輯體系 研究?jī)煞N麵分類算法 通...
閱讀 599·2021-11-22 14:45
閱讀 3093·2021-10-15 09:41
閱讀 1595·2021-10-11 10:58
閱讀 2809·2021-09-04 16:45
閱讀 2625·2021-09-03 10:45
閱讀 3254·2019-08-30 15:53
閱讀 1238·2019-08-29 12:28
閱讀 2151·2019-08-29 12:14