顯示具有 理財 標籤的文章。 顯示所有文章
顯示具有 理財 標籤的文章。 顯示所有文章

2018年12月14日 星期五

google spreadsheet抓取個股當月歷史股價

之前有分享Python抓取個股當月歷史股價
如果沒有Python環境的話,也可以用google spreadsheet來抓
利用
IMPORTDATA這個函數
只要將網址代入這個函數就能完成
例如我們要抓取2330的2018/12/01月的整月股價
就在A1輸入以下文字就完成了

=importData("http://www.twse.com.tw/exchangeReport/STOCK_DAY?response=csv&date=20181214&stockNo=2330")

如果要抓取別的月份就把網址裡的data改掉,例如2018/11月(日期隨便)就是date=20181101
如果要抓取別的股票就把網址裡的stockNo改掉,例如中鋼2002就是stockNo=2002

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")


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