Skip to content

Instantly share code, notes, and snippets.

@ymtky
Last active September 8, 2018 13:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ymtky/b46566bc39fd8193f77dad070a539011 to your computer and use it in GitHub Desktop.
Save ymtky/b46566bc39fd8193f77dad070a539011 to your computer and use it in GitHub Desktop.
google financeのAPI使用サンプル
import requests
from datetime import datetime, timedelta
import pandas as pd
url = "https://www.google.com/finance/getprices"
code = 7203
lsat_date = datetime.now() #データの取得開始日
interval = 86400 #データの間隔(秒)。1日 = 86400秒
market = "TYO" #取引所のコード TYO=東京証券取引所
period = "1Y" #データを取得する期間
params = {
'q': code,
'i': interval,
'x': market,
'p': period,
'ts': lsat_date.timestamp()
}
r = requests.get(url, params=params)
lines = r.text.splitlines()
columns = lines[4].split("=")[1].split(",")
prices = lines[8:]
#レスポンスの1日目のタイムスタンプをdatetimeに
first_cols = prices[0].split(",")
first_date = datetime.fromtimestamp(int(first_cols[0].lstrip('a')))
result = [[first_date.date(), first_cols[1], first_cols[2], first_cols[3], first_cols[4], first_cols[5]]]
for price in prices[1:]:
cols = price.split(",")
date = first_date + timedelta(int(cols[0]))
result.append([date.date(), cols[1], cols[2], cols[3], cols[4], cols[5]])
df = pd.DataFrame(result, columns = columns)
df.to_csv(str(code) + ".csv", index=False)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment