从谷歌金融、雅虎金融或交易所本身获取股票报价
Posted
技术标签:
【中文标题】从谷歌金融、雅虎金融或交易所本身获取股票报价【英文标题】:fetch stock quotes from google finance, yahoo finance or the exchange itself 【发布时间】:2010-11-21 21:54:42 【问题描述】:我正在构建一个基于 Web 的交易系统,通过读取来自雅虎财经、谷歌财经或交易所(印度 NSE)本身的报价将生成买入和卖出信号。我的首选是从此网址获取数据:
http://www.nseindia.com/content/equities/niftywatch.htm
网站上的页面使用表格,我想通过使用特定行的类/ID 来获取特定股票的数据。 现在的问题是我无法弄清楚如何从我的服务器上的不同域中获取数据。我在客户端使用 jquery,在服务器端我在 VB 中使用 ASP.Net。 所以请帮助我并建议我如何从上述来源获取股票报价。 即使我可以访问上述 url 上的表格,我的工作也将完成。 请帮忙。 提前非常感谢。
PS:刚刚在谷歌财经上注意到他们为这个特定的交易所提供实时报价,所以如果很容易从谷歌获取数据(我知道他们几乎每个服务都有 api),那么请解释一下。
【问题讨论】:
【参考方案1】:Google 确实为 Google Finance 提供了 API,记录在这里:http://code.google.com/apis/finance/
看起来它是围绕投资组合的理念设计的,而且我没有立即看到请求特定股票报价的方法。最接近的似乎是“Retrieving specific positions”。
无论如何,这不是你想用 jQuery 解决的问题。一方面,您将无法从另一个站点(例如,nseindia.com
站点)读取任何数据,除非您可以利用该站点上的 JSONP
脚本设置。
【讨论】:
嘿,非常感谢您指向 api,现在正在浏览它.. 但是如果我无法从另一个站点获取数据,那么我该如何使用这个 api。 您无法使用 javascript 从另一个站点读取数据,但您当然可以从 ASP.NET 读取数据。谷歌应该有一些具体如何做到这一点的例子。 对于需要谷歌金融api的人来说只是一个警告或信息,只想说它不再支持或可用......你可以使用YQL!【参考方案2】:以下是如何以 CSV 格式从 Yahoo Finance 获取历史每日股票价格(截至今天):
http://ichart.finance.yahoo.com/table.csv?s=AAPL
AAPL
是股票代码。
您可以使用一些附加参数来限制返回的内容:
s - 股票代码。这是唯一不是可选的参数。
历史价格的开始日期:
a - 月份数,从 0 开始表示一月。
b - 天数,例如,1 表示该月的第一天。
c - 年份。
历史价格的结束日期(默认为最新的可用收盘价):
d - 月份数,从 0 开始表示一月。
e - 天数,例如,1 表示该月的第一天。
f - 年。
最后,历史价格的频率:
g - 可能的值是“d”代表每日(默认),“w”代表每周,“m”代表每月。
【讨论】:
感谢您的指导...但正如 voteydisciple 所说我无法从其他网站读取数据,那么我该如何检索报价...。 顺便问一下,有谁知道上面的官方记录在哪里?我从一些非官方的地方拼凑起来,但雅虎大概为此维护了更好的文档。 这是 CSV 的旧方法。您现在可以通过 YQL 查询。一个例子在这里:jarloo.com/tutorials/get-yahoo-finance-api-data-via-yql【参考方案3】:当您说您无法从其他站点获取数据时,我对您的 cmets 感到困惑。
您是说您不能从您的服务器进行 HTTP 调用,因为它被防火墙策略或其他限制所禁止?或者,您是说您根本不知道如何从您的服务器进行 HTTP 调用?
如果是后者,您应该能够很容易地找到一个用于进行 HTTP GET 调用的 .NET 库(我不使用 .NET,所以我不能确切说明要使用哪个库)。
一旦你弄清楚了,那么你需要弄清楚你将如何解析响应。它是来自 html 表的数据,是 CSV 文件,是 XML 提要,还是...?它们都会有不同的解析需求,所以如果没有更多的特异性,很难解释如何去做。您可能也可以使用可用的库,但这当然取决于您的数据源的外观。
如果情况确实如此,在我看来,您可能对 HTTP 的工作原理只有很浅的了解,并且可能会从了解 HTTP 1.1 的工作原理中受益,然后再继续深入。您不必了解整个规范,但足以区分用户代理、服务器、内容类型等的角色。
否则,如果您说您无法绕过防火墙策略等,那么您必须提供有关您的服务器环境的更多信息,然后我们才能提供帮助。
【讨论】:
【参考方案4】:您正在寻找日终数据。如果是这种情况,您可以为 bhavcopy 或两个日期之间的历史数据编写 url(持续时间有限制。我认为是 3 年左右)。
有趣的是,当您从 nseindia 下载历史数据时,请注意他们在下载 zip 数据时提供的链接,复制它,修改它以适合您的日期范围,然后点击它。
通过这种方式,您可以自动从 nseindia 下载历史数据。事实上,我们对http://kakup.com使用相同的
当然,我们也将其转换为 metastock 格式。它工作正常。
【讨论】:
【参考方案5】:您可以使用wget 下载包含特定股票所有信息的页面。页面保存到本地硬盘后,您可以解析并检索实时价格(,p:"stock_price")。
例如:wget http://www.google.ca/finance?q=some_particular_stock
对此进行编程以定期检索信息,您就拥有了一个实时报价跟踪器。
【讨论】:
你有这方面的例子吗? 这只是我想到的一个想法,所以我没有任何示例代码【参考方案6】:我一直在使用简单的 REST 服务从雅虎获取股票报价,我刚刚在我的网站上发布了供我参考。人们可以通过它。
http://vikku.info/codetrash/Yahoo_Finance_Stock_Quote_API
【讨论】:
【参考方案7】:here's 不是发布示例,而是指向 yahoo Finance 的 API 文档的链接。它涵盖了 CSV 和 REST API(尽管 CSV 似乎涵盖得更完整)。
【讨论】:
以上是关于从谷歌金融、雅虎金融或交易所本身获取股票报价的主要内容,如果未能解决你的问题,请参考以下文章