我已经使用 pip 从 PyPI 安装了 yahoo Finance,当我运行以下脚本时,出现导入错误:没有名为 yahoo_finance 的模块
from yahoo_finance import Share
BlackDiamond = Share('BDE')
print(BlackDiamond.get_open)
Run Code Online (Sandbox Code Playgroud) :使用熊猫的DataReader的“雅虎”的方法,因为16日2017年我还没有测试此修复程序,雅虎财经雅虎财经URL一直没有访问https://pypi.python.org/pypi/fix-yahoo-finance那昨天刚刚发布,声明:“雅虎财经已停用他们的历史数据 API”。
编辑 2017 年 8 月 2 日:我已经按照https://pypi.python.org/pypi/fix-yahoo-finance 中的步骤操作:$ pip3 install fix_yahoo_finance --upgrade --no-cache-dir,将 pandas_datareader 升级为使用“fix-yahoo-finance 0.0.6”,并修改代码:
from pandas_datareader import data as pdr
import fix_yahoo_finance
data = pdr.get_data_yahoo('AAPL', start='2017-04-23', end='2017-05-24')
Run Code Online (Sandbox Code Playgroud)
请注意,最后 2 个数据列的顺序是“Adj Close”和“Volume”,即。不是以前的格式。出于我的目的,它们只是重置为原始格式:
cols = ['Date', 'Open', 'High', 'Low', 'Close', 'Volume', 'Adj Close']
data.reindex(columns=cols)
Run Code Online (Sandbox Code Playgroud) 我有 ISIN、股票代码(没有后缀,例如三星005930而不是005930.KS)和国家/地区名称。当我访问雅虎财经网站时,我可以使用 ISIN 进行搜索并获得我正在寻找的股票。
当我尝试通过调用 API 端点以编程方式执行此操作时,https://query2.finance.yahoo.com/v10/finance/quoteSummary/{ TickerSymbol }?modules=financialData它并不总是有效,因为在某些情况下缺少后缀。而且我还没有找到用 ISIN 查询的方法。
那么如何使用 Yahoo Finance API 分别使用 ISIN、股票代码(无后缀)和国家名称查找股票?
谢谢
去年我一直使用此代码从雅虎财经提取(抓取)股票价格,但现在它产生了错误。有谁知道为什么会发生这种情况以及如何解决它?
# Importing necessary packages
from pandas_datareader import data as web
import datetime as dt
import matplotlib.pyplot as plt
import pandas as pd
import os
import numpy as np
# Stock selection from Yahoo Finance
stock = input("Enter stock symbol or ticket symbol (Exp. General Electric is 'GE'): ")
# Visualizing the stock over time and setting up the dataframe
start_date = (dt.datetime.now() - dt.timedelta(days=40000)).strftime("%m-%d-%Y")
df = web.DataReader(stock, data_source='yahoo', start=start_date)
#THE ERROR IS ON THIS LINE^
plt.plot(df['Close'])
plt.title('Stock Prices Over …Run Code Online (Sandbox Code Playgroud) 平台:带有C#Windows应用程序的.NET
我正在寻找可以获取这些东西的API / Web服务
我正在直接从Yahoo!下载股票数据 金融.
我将两个日期的"Adj Closed"进行比较以获得增长率.例如,1987年7月20日,KO(可口可乐)的收盘价调整为1.71,而2013年7月1日的收盘价为40.46.因此该比率为2366%; 我的程序是正确的.但它不同意雅虎的图表!财务,很容易理解为什么:图表的7月20日价值为3.0238.但为什么他们的图表与他们的数据不同?
将VFINX(一个指数基金)与^ GSPC(标准普尔,这是它的索引)进行比较时,我遇到了一个更糟糕的问题.该图显示它们应该是一致的,大约在400%左右.在此期间,VFINX从16.14增长到156.14(调整后收盘).但^ GSPC从302.94增长到1692.39,这给出了一个非常不同的比率.
我的数据出了什么问题?我是在误解某些东西,还是在错误的地方寻找?
这是^ GSPC.最后一个字段是Adjusted Closing.
7/23/2013 1696.63 1698.78 1691.13 1692.39 3096180000 1692.39
7/1/1987 303.99 304 302.53 302.94 157000000 302.94
这是VFINX
7/23/2013 156.14 156.14 156.14 156.14 0 156.14
7/1/1987 30.41 30.41 30.41 30.41 0 16.14
我几年来一直在使用雅虎财经查询,在过去几周(或几个月),我注意到我尝试的每个查询都不再返回15分钟的延迟数据.相反,当市场开放时,它会返回前一个交易日的数据(例如,查询运行现在返回周二的收盘数据).根据我的经验,这是新的行为.
例如,请执行以下查询:
几分钟前我运行时,返回的XML是:
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="1" yahoo:created="2016-03-16T18:31:35Z" yahoo:lang="en-US">
<results>
<quote symbol="^GSPC">
<Ask>2017.27</Ask>
<AverageDailyVolume/>
<Bid>2010.86</Bid>
<AskRealtime/>
<BidRealtime/>
<BookValue>0.00</BookValue>
<Change_PercentChange>-3.71 - -0.18%</Change_PercentChange>
<Change>-3.71</Change>
<Commission/>
<Currency>USD</Currency>
<ChangeRealtime/>
<AfterHoursChangeRealtime/>
<DividendShare/>
<LastTradeDate>3/15/2016</LastTradeDate>
<TradeDate/>
<EarningsShare/>
<ErrorIndicationreturnedforsymbolchangedinvalid/>
<EPSEstimateCurrentYear/>
<EPSEstimateNextYear/>
<EPSEstimateNextQuarter>0.00</EPSEstimateNextQuarter>
<DaysLow>2005.23</DaysLow>
<DaysHigh>2015.94</DaysHigh>
<YearLow>1810.10</YearLow>
<YearHigh>2134.72</YearHigh>
<HoldingsGainPercent/>
<AnnualizedGain/>
<HoldingsGain/>
<HoldingsGainPercentRealtime/>
<HoldingsGainRealtime/>
<MoreInfo/>
<OrderBookRealtime/>
<MarketCapitalization/>
<MarketCapRealtime/>
<EBITDA/>
<ChangeFromYearLow>205.83</ChangeFromYearLow>
<PercentChangeFromYearLow>+11.37%</PercentChangeFromYearLow>
<LastTradeRealtimeWithTime/>
<ChangePercentRealtime/>
<ChangeFromYearHigh>-118.79</ChangeFromYearHigh>
<PercebtChangeFromYearHigh>-5.56%</PercebtChangeFromYearHigh>
<LastTradeWithTime>4:05pm - <b>2015.93</b></LastTradeWithTime>
<LastTradePriceOnly>2015.93</LastTradePriceOnly>
<HighLimit/>
<LowLimit/>
<DaysRange>2005.23 - 2015.94</DaysRange>
<DaysRangeRealtime/>
<FiftydayMovingAverage/>
<TwoHundreddayMovingAverage/>
<ChangeFromTwoHundreddayMovingAverage/>
<PercentChangeFromTwoHundreddayMovingAverage/>
<ChangeFromFiftydayMovingAverage/>
<PercentChangeFromFiftydayMovingAverage/>
<Name>S&P 500</Name>
<Notes/>
<Open>2015.27</Open>
<PreviousClose>2019.64</PreviousClose>
<PricePaid/>
<ChangeinPercent>-0.18%</ChangeinPercent>
<PriceSales/>
<PriceBook/>
<ExDividendDate/> …Run Code Online (Sandbox Code Playgroud) 雅虎财经上周(再次)更改了其网页格式,并且数据不可复制,可下载或可擦除,因为数据显然是间接加载的.(我可以在调试器中看到它.)
Yahoo Finance API目前不会返回单个选项符号的选项数据,更不用说是有效期或有效期的表,也不是YQL.
有没有人在过去一周成功下载或删除了雅虎财经的期权数据?如果是这样,怎么样?
它可能不相关,但我主要使用perl.
这个问题是关于编程的,因为下载数据肯定是编程的一部分.
我一直试图从雅虎检索股票价格!财务,就像Apple Inc.一样.我的代码是这样的:(使用Python 2)
import requests
from bs4 import BeautifulSoup as bs
html='http://finance.yahoo.com/quote/AAPL/profile?p=AAPL'
r = requests.get(html)
soup = bs(r.text)
Run Code Online (Sandbox Code Playgroud)
问题是,当我在这个网页后面看到原始HTML时,该类是动态的,请参见下图.这使得BeautifulSoup很难获得标签.如何理解课程以及如何获取数据?
PS:1)我知道pandas_datareader.data,但那是历史数据.我想要实时库存数据;
2)我不想使用selenium打开一个新的浏览器窗口.
截至昨天,yahoo_finance的get_historical函数对我来说一直很好.
现在它每次我尝试调用get_historical时都会给我YQLResponseMalformedError.有任何想法吗?我对代码没有任何新的意义.
from yahoo_finance import Share
yahoo = Share('YHOO')
yahoo.refresh()
yahoo.get_historical('2014-04-26', '2014-04-29')
---------------------------------------------------------------------------
YQLResponseMalformedError Traceback (most recent call last)
<ipython-input-8-fbc20f9b6d26> in <module>()
----> 1 yahoo.get_historical('2014-04-26', '2014-04-29')
/Users/anjian/anaconda/lib/python2.7/site-packages/yahoo_finance-1.4.0-py2.7.egg/yahoo_finance/__init__.pyc in get_historical(self, start_date, end_date)
340 try:
341 query = self._prepare_query(table='historicaldata', startDate=s, endDate=e)
--> 342 result = self._request(query)
343 if isinstance(result, dict):
344 result = [result]
/Users/anjian/anaconda/lib/python2.7/site-packages/yahoo_finance-1.4.0-py2.7.egg/yahoo_finance/__init__.pyc in _request(self, query)
123 raise YQLQueryError(response['error']['description'])
124 except KeyError:
--> 125 raise YQLResponseMalformedError()
126 else:
127 if self._is_error_in_results(results):
YQLResponseMalformedError: Response malformed.
Run Code Online (Sandbox Code Playgroud) yahoo-finance ×10
python ×5
yahoo-api ×2
asp.net ×1
c# ×1
datareader ×1
html ×1
ipython ×1
options ×1
pandas ×1
web-crawler ×1
web-services ×1
yahoo ×1
yfinance ×1
yql ×1