心ゆく日並

辛さを辛味に、苦しみを苦味に転じら れればこの日々も味わい深い

Python プログラム

米国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)

 







お・す・す・め・!

1

目次1 マコトのプロフィール1.1 自己紹介1.2 タイトルの由来1.3 サブタイトルの由来1.4 趣味1.5 ほしいも ...

-Python, プログラム

Copyright© 心ゆく日並 , 2019 AllRights Reserved.