雅虎金融 API 在旧 URL 和用户代理上给出错误 403(禁止)

问题描述 投票:0回答:4

我使用雅虎财经 API 的用例之一是找出给定股票的收益日期。直到 7/2021 左右,它都工作正常,但开始给出错误 403(禁止)。

经过一段时间的挣扎,发现添加

{'User-agent': 'Mozilla/5.0'}
标头可以解决问题。如果您遇到类似的问题,您可以尝试看看它是否也能解决您的问题。这是示例屏幕截图:

>>> url="https://query2.finance.yahoo.com/v10/finance/quoteSummary/PYPL?modules=calendarEvents"
>>> r=requests.get(url)
>>> r
<Response [403]>
>>> r=requests.get(url, headers={'User-agent': 'Mozilla/5.0'})
>>> r
<Response [200]>
>>> r.json()
{'quoteSummary': {'result': [{'calendarEvents': {'maxAge': 1, 'earnings': {'earningsDate': [{'raw': 1635764340, 'fmt': '2021-11-01'}, {'raw': 1636113600, 'fmt': '2021-11-05'}], 'earningsAverage': {'raw': 1.13, 'fmt': '1.13'}, 'earningsLow': {'raw': 0.97, 'fmt': '0.97'}, 'earningsHigh': {'raw': 1.27, 'fmt': '1.27'}, 'revenueAverage': {'raw': 6265160000, 'fmt': '6.27B', 'longFmt': '6,265,160,000'}, 'revenueLow': {'raw': 6041000000, 'fmt': '6.04B', 'longFmt': '6,041,000,000'}, 'revenueHigh': {'raw': 6539200000, 'fmt': '6.54B', 'longFmt': '6,539,200,000'}}, 'exDividendDate': {}, 'dividendDate': {}}}], 'error': None}}

python yahoo-finance
4个回答
9
投票

我也面临着类似的问题。显然有两件事发生了变化:

  1. 他们更新了网址
  2. 它们限制特定的用户代理(Matlab 被明确拒绝)

截至 2021 年 6 月 16 日的网址为:

symbolString = 'TGT'; % look up Target prices as an example  
urlBase = 'https://query1.finance.yahoo.com/v7/finance/download/'; % base as of   6/16/2021
url = [urlBase,symbolString];  

然后我们显式设置用户代理:

options = weboptions('UserAgent',''); # as of 6/16/2021 it is enough to submit a blank user agent

2
投票

此方法于 2022 年 1 月 14 日有效。我用谷歌搜索“我的用户代理是什么”来获取用户代理字符串。通过将浏览器用户代理字符串添加到请求中,我模仿了浏览器。

import requests
url='https://query1.finance.yahoo.com/v7/finance/download/TSLA'
headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
}
r = requests.get(url, headers=headers)
print(r.status_code)
print(r.content)

1
投票

你需要在你的环境中更新你的Python包:

pip install yahoo-fin -U

0
投票

2024 没有任何效果

尝试过

“用户代理”,“Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/108.0.0.0 Safari/537.36”

m/v7/finance/download/MSFT?period1=946677600&period2=1704060000&interval=1mo&events=history&includeAdjustedClose=true

{"finance":{"result":null,"error":{"code":"forbidden","description":"User is unable to access this feature - ...."}}}
© www.soinside.com 2019 - 2024. All rights reserved.