我正在尝试从Yahoo金融股中抓取历史数据。我从互联网上找到了一些代码并对其进行了修改。起初它起作用了,但是现在我不能从雅虎那里刮下面包屑了。谁能建议如何解决这个问题?
我第一次抓取yahoo时,它抓取了20套数据并停止工作。我又重新启动了,但是没有用
相关代码附在下面
def _get_crumbs_and_cookies(stock):
"""
get crumb and cookies for historical data csv download from yahoo finance
parameters: stock - short-handle identifier of the company
returns a tuple of header, crumb and cookie
"""
url = 'https://finance.yahoo.com/quote/{}/history'.format(stock)
with requests.session():
header = {'Connection': 'keep-alive',
'Expires': '-1',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) \
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/54.0.2840.99 Safari/537.36'
}
website = requests.get(url, headers=header)
soup = BeautifulSoup(website.text, 'lxml')
crumb = re.findall('"CrumbStore":{"crumb":"(.+?)"}', str(soup))
return (header, crumb[0], website.cookies)
完整的原始代码可以在以下位置找到: https://maikros.github.io/yahoo-finance-python/
预先感谢您的帮助
答案 0 :(得分:0)
我认为您应该在这里查看这篇文章:Yahoo Finance API / URL not working: Python fix for Pandas DataReader
雅虎财经似乎已经停止了其历史数据:(
您可以尝试Google!但是,Google并不是一个切实可行的选择,因为Google会根据拆分价格(而非股息)调整价格。
希望这会有所帮助!
答案 1 :(得分:0)
像一个星期前一样,我一直在寻找财务API。 我认为,无论是Yahoo还是Google都应该提供出色的产品,但我不得不发现两者都已停产。
目前,我正在使用WorldTradingData,它每天免费供250个请求使用。我不知道您将在哪种规模上工作,但是如果您需要App进行此操作,他们还会提供付费订阅,并提供更多请求。 我发现他们的客户支持非常好并且很有帮助,因为我发现一些实时报价有误,并且仅仅一天后他们就已经切换了从中获取数据的位置,并且一切都变好了!
我希望这能使您到达想要的位置!