iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
Python

30天做出理財小助理系列 第 5

Day5:抓取股票資訊

  • 分享至 

  • xImage
  •  

上一篇講完個個函數的應用之後,今天就開始抓取股票吧
https://ithelp.ithome.com.tw/upload/images/20240919/20169376hqrtEMemE6.jpg
這行程式碼的意思,我們需要連接到一個 SQL Server 資料庫,這裡使用的是一個叫 PP 的資料庫。程式會透過提供的帳號、密碼等資訊連接到這個資料庫,這就像打開一個資料庫的門,讓程式能夠讀取和寫入資料。
https://ithelp.ithome.com.tw/upload/images/20240919/20169376nsjBkx1UMW.jpg
https://ithelp.ithome.com.tw/upload/images/20240919/201693761j8TOoAgs2.jpg
這兩個函數分別的意思是,接受一個資料庫游標 cursor 和最新日期 lastest_date,並在資料表中刪除該日期的所有資料。這是為了避免插入重複的數據。第二個的意思是從資料庫中查詢表格的最大日期,並將其轉換為字串格式,以獲取最新的資料日期,這樣就能夠從這個日期之後的數據進行處理。
https://ithelp.ithome.com.tw/upload/images/20240919/20169376HitxZIqmz7.jpg
首先,使用 finlab.login() 登入 FinLab 平台,然後建立資料庫連線,後面那一長串是金鑰,每一個帳戶所給的金鑰都會不同。
再來就是抓取資料的部分,Finlab會堤共平台有的功能,並且都把獲取方式寫出來,大致上獲取資料的部分是很簡單的
https://ithelp.ithome.com.tw/upload/images/20240919/20169376kJtXP9kjxl.jpg
(這是網站提供的一部份內容)
那我們今天主要抓的是開盤價、收盤價、最高價、最低價、成交股數、成交筆數跟成交金額
https://ithelp.ithome.com.tw/upload/images/20240919/20169376HaJaDiaDyd.jpg
接下來都抓好資料後,就可以開始匯入到SQL裡面了。
https://ithelp.ithome.com.tw/upload/images/20240919/20169376VnNZz023RR.jpg
當資料抓取回來後,程式會進一步處理這些數據,確保它們不是空的(Nan)(避免處理掉無效的數據)。接著,程式會將這些資料一筆筆插入資料庫中。就像一個助理把每天的股票資訊整理好,程式是把它寫進 SQL Server 資料庫最後在完成資料插入之後,將所有更改提交到資料庫,保證資料庫中的數據狀態一致。接下來就可以去SQL檢查一下資料有沒有跑進去
https://ithelp.ithome.com.tw/upload/images/20240919/20169376O3wfYiAmru.jpg
這一行的意思是,從我的PP_StockData裡面找出其中一支股票為'2330'並且時間是在2023-01-01到2023-12-31的範圍裏面,最後將時間做排序。執行之後大概會長這樣
https://ithelp.ithome.com.tw/upload/images/20240919/20169376PEvNNoSLEd.jpg
檢查完都沒錯誤之後,就代表成功抓取資料啦!那竟然我們都抓好資料了,明天就來試試看把我們今天抓的資料畫成一個線圖吧!
總結一下整段程式做的事情:
很像一個自動化的小工具,它每天會:
先把舊的資料刪掉。
從 FinLab 抓取新的股票數據。
把這些新的數據寫進資料庫。
這樣你就可以隨時查詢資料庫中的最新股票資訊。


上一篇
Day 4: 準備資料&解釋函數
下一篇
DAY6:製作股票線圖
系列文
30天做出理財小助理12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言