建立⼀個圖形介⾯應⽤(GUI app),在 app 的輸入欄位輸入某港股編號後,點擊下載按
鈕可以從 Yahoo Finance 網站下載該港股最近60個交易⽇的股價。
該程序由以下兩個檔案構成:
- 模組 yf.py :定義⼀個叫 YahooFinanceHistory 的 python 類。專⾨⽤於處理爬
蟲⼯作。 - 主程序 app.py :使⽤ tkinter 建立圖形介⾯。
該GUI應⽤的外觀請⾒下⾴。
每當程序成功下載數據檔案,「下載」按鈕下⽅會出現「成功!」字樣,否則出現
「失敗!」字樣:
在該⽂件中定義 YahooFinanceHistory 類,使該類具有以下屬性和⽅法以及相關功
能:
- _url 屬性(attribute),為⽬標網⾴之URL模板(format):
https://finance.yahoo.com/quote/{code}.HK/history?p={code}.HK
其中 {code} 為填入股票編號的地⽅。 - get_data ⽅法(method),其輸入參數為股價編號 code 。執⾏該⽅法可以從
Yahoo Finance 下載最近60個交易⽇的股價。 get_data 為本程序核⼼內容之⼀。
它可以再細分為以下部份:
i. 由 _url 建構完整 URL。
ii. ⽤ requests.get 函數訪問 Yahoo Finance 網站並取得 HTML 碼。
iii. ⽤ BeautifulSoup 物件分析HTML的結構,並定位所需內容。
iv. 提取數據,建立 DataFrame ,並將其返回(return)。
你这个涉及tk和爬虫的复合应用了,两者之间的数据可以用csv文件存储