Python 从雅虎下载数据!财务
嗨,我最近参加了一个关于比特币分析的项目,需要从雅虎下载财务数据!通过Python提供金融服务。我试着修复雅虎财经和熊猫数据阅读器,但下载文件时网站上似乎有一个bug。它总是错过一些日子。所以我决定用靓汤,代码如下:Python 从雅虎下载数据!财务,python,pandas,beautifulsoup,yahoo-finance,Python,Pandas,Beautifulsoup,Yahoo Finance,嗨,我最近参加了一个关于比特币分析的项目,需要从雅虎下载财务数据!通过Python提供金融服务。我试着修复雅虎财经和熊猫数据阅读器,但下载文件时网站上似乎有一个bug。它总是错过一些日子。所以我决定用靓汤,代码如下: import requests import time import pandas as pd from bs4 import BeautifulSoup def time_convert(dt): time.strptime(dt,'%Y-%m-%d %H:%M:%S'
import requests
import time
import pandas as pd
from bs4 import BeautifulSoup
def time_convert(dt):
time.strptime(dt,'%Y-%m-%d %H:%M:%S')
s = time.mktime(time.strptime(dt,'%Y-%m-%d %H:%M:%S'))
return str(int(s))
s = requests.Session()
start = time_convert("2016-02-15 00:00:00")
end = time_convert("2018-02-15 00:00:00")
r = s.get("https://uk.finance.yahoo.com/quote/BTC-USD/history?period1="+start+"&period2="+end+"&interval=1d&filter=history&frequency=1d"
soup = BeautifulSoup(r.text, 'lxml')
tables = soup.select('table')
df_list = []
for table in tables:
df_list.append(pd.concat(pd.read_html(table.prettify())))
df = pd.concat(df_list)
df.to_excel("E:\PythonData\price_"+'.xlsx')
它可以工作,但数据不完整,因为当鼠标向下滚动到页面末尾时,网站会加载数据,但代码不会这样做。我该如何解决这个问题呢?雅虎过去有一个财务api,但他们已经终止了它,尽管有一个解决办法
我以前用过success,你可能想看看它。你试过用Yahoo Financials吗?它建造得很好,而且不容易损坏;不要丢弃网页。它从[“上下文”][“调度程序”][“存储”]对象散列出所需的数据。它速度很快,而且建造得很好 $pip安装yahoofinancials 用法示例:
from yahoofinancials import YahooFinancials
tech_stocks = ['AAPL', 'MSFT', 'INTC']
bank_stocks = ['WFC', 'BAC', 'C']
yahoo_financials_tech = YahooFinancials(tech_stocks)
yahoo_financials_banks = YahooFinancials(bank_stocks)
tech_cash_flow_data_an = yahoo_financials_tech.get_financial_stmts('annual', 'cash')
bank_cash_flow_data_an = yahoo_financials_banks.get_financial_stmts('annual', 'cash')
banks_net_ebit = yahoo_financials_banks.get_ebit()
tech_stock_price_data = tech_cash_flow_data.get_stock_price_data()
daily_bank_stock_prices = yahoo_financials_banks.get_historical_stock_data('2008-09-15', '2017-09-15', 'daily')
输出示例:
yahoo_financials = YahooFinancials('WFC')
print(yahoo_financials.get_historical_stock_data("2017-09-10", "2017-10-10", "monthly"))
返回
{
"WFC": {
"prices": [
{
"volume": 260271600,
"formatted_date": "2017-09-30",
"high": 55.77000045776367,
"adjclose": 54.91999816894531,
"low": 52.84000015258789,
"date": 1506830400,
"close": 54.91999816894531,
"open": 55.15999984741211
}
],
"eventsData": [],
"firstTradeDate": {
"date": 76233600,
"formatted_date": "1972-06-01"
},
"isPending": false,
"timeZone": {
"gmtOffset": -14400
},
"id": "1mo15050196001507611600"
}
}
首先谢谢你。我下载了这个软件包,但不知道如何调用它的函数。你能提供一些例子吗?像运行任何其他python库一样运行安装脚本,导入它并使用load_yahoo_quote函数,ticker是一些字符串,可能是“BTC-USD”,在你的例子中,begindate和enddate是自明的。它起作用了,该函数称为“load_yahoo_quote”。但是下载的数据是一系列的列表,你能告诉我如何将其转换成数据帧吗?谢谢!idk你想要什么,但谷歌是你最好的朋友,如果你只是想要一个excel文件,csv就足够好了,实际上它是一个字符串列表,每个字符串是一行所有数据,包括价格和日期,用“,”分隔。我想知道是否有办法将数据传输到数据帧。。。。