看板 R_Language 關於我們 聯絡資訊
因為有網友來信問到如何使用 R 抓取證交所網站股價資料 我就把簡單的作法,貼在這裡,讓有需要的網友參考。 (其實我本身是習慣使用 python 抓資料的) 原則上證交所有非常多種資料,資料的抓取方式都大同小異, 因為證交所前一陣子把資料都改成 json 格式,非常好抓。 大家可以依照自己需求,改一下參數,抓取想要的資料。 這裡我抓取特定日期,上市所有股票的交易資訊。 # http://www.tse.com.tw/zh/page/trading/exchange/MI_INDEX.html # 全部(不含權証 牛熊證 ....etc) library(jsonlite) qdate <- '20170721' #要抓取的日期 qtype <- 'ALLBUT0999' #全部(不含權証 牛熊證 ....etc) ttime <- as.character(as.integer(as.POSIXct(Sys.time()))*100) url <- paste0('http://www.twse.com.tw/exchangeReport/MI_INDEX?', 'response=json&date=',qdate,'&type=',qtype,'&_=',ttime) x <- fromJSON(url,flatten=T) x$data5 個股資料都在 x$data5,有需求者依照自己要的清理一下資料, 例如存成csv,或存進資料庫,寫成自動程式等,這部份就請自行 處理。如果只想抓取特定股票例如台積電 2330,請研究一下 網站,抓取方式類似。 另外上櫃股票的網站抓取方式類似,也都是 json 格式資料。 :p 補上 python3 的程式碼 import time import requests qdate = '20170721' qtype = 'ALLBUT0999' ttime = str(int(time.time()*100)) url = 'http://www.twse.com.tw/exchangeReport/MI_INDEX? response=json&date={}&type={}&_={}'.format(qdate,qtype,ttime) page = requests.get(url) x = page.json() 資料都在 x['data5'] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 104.155.222.243 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1500705634.A.F7B.html
f496328mm: 推推 07/22 15:54
f496328mm: Python會比較好抓資料嗎?看過很多爬蟲都是用Python 07/22 16:19
我對 R 的資料型態老是搞不清楚,所以比較喜歡使用 python XD 上面補上對應的 python 碼
TaiwanFight: 好抓程度一樣 看你喜歡哪種語法 07/22 16:26
※ 編輯: bluecadence (104.155.222.243), 07/22/2017 16:54:00
eegame: 讚嘆(跪讀 07/22 17:26
※ 編輯: bluecadence (104.155.222.243), 07/22/2017 19:08:06
f496328mm: 感謝 改天來試試 大大有github嗎? 想參考看看 07/22 21:37
k5171: 感謝分享 07/23 12:39
david31408: 大推 09/22 00:00