Python
Coding
Python憑藉簡單易懂的程式語言寫法及廣大開發者的模組支援,可以非常容易的達到在網頁上抓取公開內容,再整理成特定資料型態的需求。開發一個Python爬蟲,我們要具備以下能力:
twstock
twstock是由Louie Lu開發的Python模組,使用這個模組便能輕易取得台灣證券交易所以及證券交易櫃買中心的資料,包括個股資訊、歷史價格、均價、均量、乖離值、及四大買賣點分析等,甚至能在盤中直接抓取即時價格資料。
twstock 指令說明
https://pypi.org/project/twstock/
在這個程式中會用到以下幾個模組:
.csv
檔案保存首先引入twstock模組
接著設定要查詢的股票代號變數(target_stock),並將變數帶進模組中,再使用fetch_from()
屬性抓取指定期間的交易資料存到股票價格的變數(target_price)裡面。
如果把股價print()
出來,會看到這樣的清單(list):
其中我們可以歸納出Data(Date)、Capacity、Turnover、Open、High、Low、Close、Change和Trascation幾個表頭屬性,接著便可以用pandas來整理這個資料,將這筆清單資料轉換成Data Frame便能進一步分析或繪圖。
表頭屬性說明:https://twstock.readthedocs.io/zh_TW/latest/reference/stock.html
為了要將目前股價的清單轉換成方便操作的Data Frame格式,這裡要使用另一個在Python資料分析中超級重要的pandas模組。
接著要設定資料表裡面的表頭,也就是我們前面歸納出來的9個資料的名稱,在這裡我們設定了一個名為name_attribute的清單,清單中包含9個我們需要的表頭:
將清單轉換成資料表要用到pandas模組中的pd.Dataframe()
功能,而參數中我們便引入前面設計好的表頭,再指定要放入資料表的資料來源,就能將清單轉換成資料表格式了。
將資料表print()
出來可以看到資料已經整理好了,非常清楚易讀,接下來我們要將資料表的存成檔案,方便未來分析使用。
一般使用pandas模組保存Data Frame資料時,常會選用.csv
檔案儲存,一方面檔案體積小,也易於與其他資料分析模組互動。
首先我們在Python程式的資料夾中建立一個'data'資料夾,準備用來存放股價資料,接著在程式中宣告一個檔案名稱+路徑的變數,這邊引用一開始使用的股票代號變數作為檔名,方便我們未來能快速的調用檔案。
接著使用pandas模組中的df.to_csv()
功能,參數中放入檔案的路徑,便能將資料表保存成.csv
檔案啦!
以下為完整的程式碼內容:
若要繪製 K線 可先將表頭 'Turnover' 替換成 'Volume'
下一篇: 台股個股線圖繪製─Python筆記(2)