<経緯・事象>
土曜日にいつものようにyahoo_finance_api2を利用したデータ取得プログラムを走らせてみたら、
エラーが出ました。
リクエストのステータスコードが403となっているので、閲覧権限がないってことです。
<解消法>
requests.getを実行しているところに、ヘッダー情報を追加して、ブラウザからのリクエストに見せかけることで、うまくいきます。
requests.getはyahoo_finance_api2のshare.pyにある_download_symbol_dataメソッドにあります。
pycharmを使っている方は、自分のコードにあるget_historicalをctrl押しながらクリックすれば飛んでいきます。
share.py 対象部分の変更前(多分以下の通り)
resp_json = requests.get(url).json()
share.py 対象部分の変更後
# ブラウザに偽装 " urllib.error.HTTPError: HTTP Error 403: Forbidden"対策
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36'}
resp_json = requests.get(url,headers=headers).json()
参考:以下は403対策の汎用的なメモですが、早速の出番にびっくり。↓↓↓
https://qiita.com/DragonNameLeo/items/0df4316a18f2eea813bd