跳至主要內容
FinLab

爬蟲 Python 新手教學 (Part 1):簡單程式碼,用 yfinance 爬全球股票股價

現在開始並不算晚,用 Python 做選股交易,超越大盤,已經變得非常非常簡單,所以系列文章的第一篇,我們要來介紹如何簡單使用 Python 爬股價!有了股價之後,才能有價格資料進而做出決策。值得一提的是,這是全球股價都適用的爬蟲,今天就讓我們回到原點,從最簡單的 Python 開始教起,想要做股票數據分析,一定要先得到股票資料,所以我們就從股票資料如何獲取開始吧!

爬蟲爬取全世界股票資料

用 Python 來製作爬蟲!

從頭開始學 python

這篇文章中 我們會帶著初學者開始再從頭瞭解 如何用 python 分析財經資料,並從中獲利!

你是程式新手嗎? 不用擔心,只要跟著這一系列的教學, 保證你一定學的會! 這一系列教學將會是 hahow 課程中的化簡,但是可以幫助新手無痛的開始使用 python!

請點選此此課程範例,免費線上運行程式碼

使用 Google Colab 來寫 Python

Google ,佛心來著的公司,最近推出了免費雲端寫程式的平台: Google Colab 不用安裝任何軟體,可以線上免費使用 Python 實在是太方便了!只要打開 Colab 並且新增一個 notebook ,並將下方的 Code 複製貼上跑一跑囉!當然你也可以打開已經寫好的課程範例,免費線上運行程式碼!讓你快速體驗 Colab 的實力!廢話不多說,進入今天的正題吧!

用 Python 製作爬蟲爬取歷史股價

首先要先獲取股價資料,我們會用常用的 Python 函式庫:yfinance 它可以將網路上的資料給下載下來,給程式使用,我們可以先用 pip 來安裝 yfinance,pip 就像是程式安裝精靈,可以幫我們安裝各式各樣的 Python package。

顯示程式碼
!pip install yfinance

上面第一個字是驚嘆號!是 Colab 上使用 bash 語法必需要使用的開頭。假如你是在自己的電腦,例如 cmd 或是 anaconda prompt,就不需要驚嘆號喔!

接下來

顯示程式碼
import yfinance as yf

這邊的 import,就像是我們在電腦裡面打開某個軟體來使用,一樣的意思。我們打開 yfinance,並且重新將它取名為「yf」,方便我們之後呼叫(打兩個字比較輕鬆啦!)

接下來我們可以用它來下載「台積電」的資料:

顯示程式碼
df = yf.Ticker("2330.TW").history(period="max")
df

上述指令中,我們輸入的股票代號為:

  • 2330.TW 是台積電在 yahoo finance 上的 symbol,你也可以任意換成其他的,例如蘋果(AAPL),特斯拉(TSLA),微軟(MSFT)等等
  • period='max' ,我們希望拿取最多的歷史資料

透過上述簡單的語法,就可以將台積電在這兩個區間股價資訊給爬下來了!我們可以用 Python 把網址裡內的內容給爬下來。

顯示爬蟲下載數據

可以將下載下來的資料( df )顯示出來,之所以叫做 df,是 DataFrame 的簡寫:

顯示程式碼
df

DataFrame 顯示台積電開高低收與除權息資料

DataFrame 的資料

我們可以看到下載了非常多種類的資料,包含了股票的「開高低收」,另外也有除權息增減資的資訊!該有的價格資料都有了!順帶一題,這個類似表格的格式,是 Python 裡面一個非常重要的 Package 「Pandas」,處理數據非常的方便,可以把它想像是強大且靈活的 Excel。

全球股價爬蟲

你可以將任何一檔股價,包含美股港股台股陸股,用同樣的方式爬下來,只要在 yahoo finance 可以找到,就一定可以下載的下來喔!例如微軟(MSFT)、蘋果(AAPL)、特斯拉(TSLA),都可以用類似的方法來下載!

有了 google 提供的免費伺服器,我們可以在雲端執行此單元程式碼範例

行有餘力,請點選下一單元,將全球大盤指數都下載下來

這一系列是我們影音課程的化簡版, 假如對此教程有興趣,歡迎參考我們的影音課程,裡面有更詳細並完整的教學,包含資料庫建置、數據分析、回測等等。當然我們也有免費的文章,以爬蟲來說,就有非常多篇,你可以先逛一逛:

除了爬股票分析的資料,我們還有爬一些奇特的數據,有需要也可以來看看:

想建立自己的策略?

用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案

免費開始