2018年12月10日 星期一

Python抓取個股當月歷史股價

利用Python抓取個股當月歷史股價
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Phrase stock history
"""

import pandas as pd
import urllib
import sys
import json
import datetime


def getdate():
    ''' 回傳正確的西元年月日格式 '''
    #年
    year = datetime.datetime.today().strftime('%Y')
    #月
    month = datetime.datetime.today().strftime('%m')
    #日
    day = datetime.datetime.today().strftime('%d')
    #年月日
    todaydate = year + month + day
    return todaydate

if __name__ == "__main__":
    #股票代碼
    STOCK_NUM = "2330"
    ad_date = getdate()
    url = 'http://www.twse.com.tw/exchangeReport/STOCK_DAY?date=' + ad_date + '&stockNo=' + STOCK_NUM
    #以下是google到的顯示繁中編碼問題,忘記哪邊抓的(有人知道請告訴我,我補上出處)
    req = urllib.request.urlopen(url)
    encoding = req.headers.get_content_charset()
    raw = req.read().decode(encoding).encode(sys.stdin.encoding, 'replace').decode(sys.stdin.encoding)
    #把抓到的資料轉成list
    raw_list = json.loads(raw)
    df = pd.DataFrame.from_records(raw_list['data'], columns=raw_list['fields'])
    #存成csv
    df.to_csv('Result.csv',index=False,encoding="utf_8_sig")


結果如下
有時好像會被擋,請謹慎使用

沒有留言:

張貼留言