LoginSignup
1
3

More than 1 year has passed since last update.

突然yahoo_finance_api2がデータ取得できなくなった。その解消法

Posted at

<経緯・事象>
土曜日にいつものように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

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3