MENU



米国yahooから情報を取得する方法【2019/08 】

ども♪マコトです。

yahoocom(米国のyahoo)からいつの間にかCSVファイルがpytyonで取得できなくなっていたので、作ってみました。

もし、以下のプログラムで取得できない場合はご連絡ください。

import datetime as dt
from datetime import datetime, date
import pandas as pd
import requests
import re
import csv
import time
import os

def get_yahoo_crumb_cookie():
    """Get Yahoo crumb cookie value."""
    res = requests.get('https://finance.yahoo.com/quote/SPY/history')
    yahoo_cookie = res.cookies['B']
    yahoo_crumb = None
    pattern = re.compile('.*"CrumbStore":\{"crumb":"(?P<crumb>[^"]+)"\}')
    for line in res.text.splitlines():
        m = pattern.match(line)
        if m is not None:
            yahoo_crumb = m.groupdict()['crumb']
    return yahoo_cookie, yahoo_crumb

if __name__ == '__main__':

    # プロキシの設定(プロキシーが必要な場合はここで宣言。必要ない場合は以下の2行を削除)
    os.environ["http_proxy"] = "http://ID:PW@proxy.〇〇:ポート番号"
    os.environ["https_proxy"] = "https://ID:PW@proxy.〇〇:ポート番号"

    cookie, crumb = get_yahoo_crumb_cookie()

    # ダウンロードしてきたやつ(ここを変えれば別の指標を取得できます)
    INDEIES = ["%5EN225",  #Nikkei 225 (^N225)
               "%5EDJI",   #Dow Jones Industrial Average (^DJI)
               "%5EGSPC",  #S&P 500 (^GSPC)
               "%5EIXIC",  #NASDAQ Composite (^IXIC)
               "%5ERUT" ]  #Russell 2000 (^RUT)

    start = int(time.mktime(dt.datetime(1970,1,2).timetuple()))
    end = int(time.mktime(date.today().timetuple()))

    #DOWNLOAD_SAVE_DIR = os.getenv("DOWNLOAD_SAVE_DIR")
    DOWNLOAD_SAVE_DIR = r"C:\data"

    for ticker in INDEIES:
        url = "https://query1.finance.yahoo.com/v7/finance/download/%s?period1=%s&period2=%s&interval=1d&events=history&crumb=%s" % (ticker, start, end, crumb)
        data = requests.get(url, cookies={'B':cookie})

        contentType = data.headers['Content-Type']
        contentDisposition = data.headers['Content-Disposition']
        ATTRIBUTE = 'filename='
        fileName = contentDisposition[contentDisposition.find(ATTRIBUTE) + len(ATTRIBUTE):]

        saveFileName = fileName.replace('.csv',datetime.now().strftime("_%Y%m%d_%H%M%S") + '.csv')
        saveFilePath = os.path.join(DOWNLOAD_SAVE_DIR, saveFileName)
        with open(saveFilePath, 'wb') as saveFile:
            saveFile.write(data.content)

 

今、松井証券、DMM、でお得なキャンペーンが行われています。
相場が低迷している今こそ小さな金額から投資を始めるのはいいかもしれません。

松井証券FX 新規口座開設獲得プロモーション
漫画★全巻ドットコム
【DMM FX】入金
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次