發表文章

目前顯示的是 2021的文章

使用證交所csv資料應用至 LINE Notify執行收盤買賣超回報

圖片
證交所皆有提供收盤資料至網站中,這次要研究的是三大法人(外資投信自營商)的收盤買賣超資料,詳細的資料在 此頁面 的右下角: 這時點進 外資及陸資買賣超彙總表 可以發現該頁面有提供CSV檔案下載,將滑鼠移至CSV下載的按鈕之後,瀏覽器的左下角會出現一行網址: 此行網址代表可以讓使用者像伺服器發出請求下載這個檔案,因此只要複製這個網址在任何瀏覽器搜尋,會直接下載這個檔案,這時可以通過觀察外資投信自營商各自頁面的CSV下載按鈕,發現各自的網址是: 外資:https://www.twse.com.tw/fund/TWT38U?response=csv&date=20210118 投信:https://www.twse.com.tw/fund/TWT44U?response=csv&date=20210118 自營商:https://www.twse.com.tw/fund/TWT43U?response=csv&date=20210118 經由觀察發現只要修改網址後面的"date="參數以及/fund之後的三大法人編號,即可下載當日三大法人的買賣超資料,我們可以使用Python的wget套件下載資料,範例如下: import wget wget.download('https://www.twse.com.tw/fund/TWT38U?response=csv&date=20210118') 這時下載完成的檔案會是CSV檔,檔名是法人編號+日期.csv,打開此3個CSV檔可以發現前3行跟倒數後7行都是無用的資料,如下圖: 我們可以用python讀入csv檔,再將上圖紅框處的無用資料慮除。 number=[] #建立number陣列 f = open(csvfilename, newline='', encoding='cp950') #csvfilename是檔名 rows = csv.reader(f, delimiter=',') for row in rows: number.append(row) #將row讀入number陣列 我們可以發現三大法人的資料有很多列,但是我們只需要證券代號以及買賣超股數,我們還需要對csv做處理才能讀