在之前的EP1中有介紹如何抓取股票的日資料,這邊我們也將其包裝成一個套件包,方便大家直接調用使用。
因為證交所會擋爬蟲的關係,所以抓取時間會拉的比較長,這邊會提供持續抓取的功能,每抓50天的資料,程式都會把結果存下來,方便大家把所有的歷史資料抓下來,之後要更新也可以執行同一個指令即可。
程式的原始碼在這邊
安裝
pip install twstock_downloader
使用
這邊套件只接受一個引數(filepath),指定檔案存取的位置,沒有給定便會存在執行程式所待的資料夾,並從2004-02-11開始抓取(證交所的最早紀錄),如果檔案已經存在,則會讀取檔案,取得檔案目前抓到的日期,從那天開始更新。
twstock_downloader.get(filepath='C:\Users\Qin\workspace\twstock_downloader\twstock_downloader\result.json')
存出來的檔案是一個json檔案,基本上為日期對應每日的股價的資料格式,可用下面的程式碼還原為日期(字串)對應pandas.DataFrame的格式
with open('result.json', 'r', encoding='utf-8') as f:
test_data = json.load(f)
test_data.pop('current', None)
test_data = {key:pd.read_json(test_data[key]) for key in test_data.keys()}
其中,current這個key是用來告訴程式要從那邊開始抓起,如果不想從2004-02-11開始抓取,可以先產生一個空的json的檔案,裡面為{‘current’:’想要的日期(例如:20200811)’}
test_data.pop(‘current’.None) <—–這邊應該改成逗號
test_data.pop('current', None)
好的 十分感謝:)
請問特定股票若當天沒有收盤價, 建議如何處理? 例如: 5903(全家) 2021-06-09 沒有收盤價。
是會報錯嗎? 還是沒有抓到? 如果正常沒有應該不用特別處理?