Python新手教學(Part 1):用爬蟲爬全球股價!

這個系列文章的第一篇,我們要來介紹如何簡單使用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 的資料

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

全球股價爬蟲

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

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

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

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

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

FinLab - 韓承佑

嗨大家好,我是韓承佑,FinLab創辦人,畢業於巴黎薩克雷大學資工博士,目前擔任臺灣量化交易協會 學術顧問、台北商業大學 創新育成中心 創業技術顧問與上市科技公司 量化交易顧問。當初,我喜歡寫程式、無意間因為軟體比賽接觸Fintech,從此開始了財經跟程式的學習之路。我們成立 FinLab 量化投資部落格,用自己研發的軟體,對台灣股市做大量快速的實驗。希望可以在量化投資的路上,當大家的「武器製造商」!