如何异步获取yfinance的每日数据?

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

以前我只是使用 yf.download 来获取数据,但现在我必须异步进行。

我有这个代码

import aiohttp
import asyncio
import pandas as pd
from io import StringIO

ticker = 'BTC-USD'
url = f'https://query1.finance.yahoo.com/v7/finance/download/{ticker}?'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.57'
}

params = {
    'range': 'max',
    'interval': '1d',  # change interval to '1d' for daily data
    'events': 'history'
}


async def fetch(session, url, params, headers):
    async with session.get(url, params=params, headers=headers) as response:
        return await response.text()


async def get_data():
    async with aiohttp.ClientSession() as session:
        response = await fetch(session, url, params, headers)
        df = pd.read_csv(StringIO(response))
        print(df)


asyncio.run(get_data())

但它只获取每周数据。我该如何解决?

pandas dataframe python-asyncio aiohttp yfinance
© www.soinside.com 2019 - 2024. All rights reserved.