【问题标题】:yahoo_fin request limit?yahoo_fin 请求限制?
【发布时间】:2020-12-28 20:36:29
【问题描述】:

我刚刚开发了一个代码来使用 yahoo_fin 模块从 yahoo 获取基本数据。这里是代码。问题是在从 20 只股票中检索信息后,它开始失败并且无法检索任何数据。知道如何解决这个问题吗?我使用了 time.sleep(10) 但没有工作。

这里是代码。 ...

import pandas as pd
import math
import numpy as np
import yfinance as yf
from pandas import ExcelWriter
import datetime
import yahoo_fin.stock_info as si
from datetime import datetime
import matplotlib.pyplot as plt
import seaborn as sns
import datetime as dt
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader.data as web
import time


count=0
DiagnosticsResearch=['GTH', 'MYGN', 'CSTL', 'LNTH', 'PSNL', 'SRDX', 'VIVO', 'FLDM', 'QTNT', 'OXFD', 'CNTG', 'ARA', 'DMTK', 'XGN', 'ENZ', 'STIM', 'BNGO', 'BWAY', 'BASI', 'CELC', 'MOTS', 'HTGM', 'NDRA']
tickers= DiagnosticsResearch


for i in range(len(tickers)):
    ticker=tickers[i]

    try:
        count=count +1 
        df_bs= pd.DataFrame(si.get_balance_sheet(ticker, yearly=True))
        df_is=pd.DataFrame(si.get_income_statement(ticker, yearly=True))
        df_cf=pd.DataFrame(si.get_cash_flow(ticker, yearly=True))
        print (tickers[i] + " Ok")
        if count>=20:
            time.sleep(20)
        else:
           time.sleep(1)
    except:
        print (tickers[i] + "->NOT OK")
        if count>=20:
            time.sleep(20)
        else:
           time.sleep(1)
        pass
    

...

输出是下一个

Output

有时它会检索 10 只股票,其他 20 只,其他 4 支

关于如何解决这个问题的任何想法?

亲切的问候

【问题讨论】:

    标签: python stock yahoo-finance


    【解决方案1】:

    完整的运行曾经执行过吗?

    在您开发此代码并执行对 API 的调用时,您是否有可能超过每小时 2000 次调用限制,或者您确定没有接近限制?

    每个股票 3 次调用 * 20 次股票 = 每次运行可能会调用 60 次。

    我想知道是否也有速度限制。

    【讨论】:

      猜你喜欢
      • 2017-08-28
      • 2021-03-05
      • 2012-03-08
      • 2015-11-22
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多