canada 如何从Yahoo Finance获得股票代码的完整列表?




yahoo finance hk (8)

我有类似的问题。 雅虎不提供它,但你可以通过浏览nyse.com列表上的document.write语句并找到.js文件,在那里他们恰好存储以给定字母开头的公司列表作为js数组文字。 您还可以在这里从nasdaq.com获得漂亮整洁的csv文件: http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download : http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download letter=0&exchange=nasdaq&render=download(将exchange = nasdaq替换为exchange = nyse为nyse符号)。

我已经无休止地搜索了一种方法,可以通过http://finance.yahoo.com获取所有雅虎股票代码的完整(和每日更新)列表。

雅虎拥有全球很多交易所的股票,期货等信息,我希望通过它们提供所有可用的股票代码的组合列表。 我试过YQL,但他们有一个“符号=(或in)”限制的条款,所以我不能从符号中选择*。

所以基本上,一次获得单个符号或几个符号的详细信息很容易,但我似乎无法找到如何获取所有可用代码的列表。

任何人都可以帮忙吗?



Answer #2

我设法通过使用这个URL做类似的事情:

http://query.yahooapis.com/v1/public/yql?q=select%20 *%20from%20yahoo.finance.industry%20where%20id%20in%20(从%20yahoo.finance中选择%20industry.id%20 .sectors)的env =商店%3A%2F%2Fdatatables.org%2Falltableswithkeys

它使用Yahoo YQL API下载完整的股票代码列表,包括股票名称,股票代码和行业ID。 它似乎没有任何种类的股票符号修饰符。 例如,对于罗杰斯通信公司,它只下载RCI,而不是RCI-A.TO,RCI-B.TO等。我还没有找到该信息的来源,但如果有人知道如何自动下载,我我想听听它。 另外,找到一种方法可以下载股票代码和交易所之间的某种关系,因为有些交易是在多个交易所进行的,或者我只想看看TSX上的东西或某种东西。


Answer #3

http://code.google.com/p/yahoo-finance-managed/上的Yahoo.Finance API提供了一个很好的C#包装器,它可以帮助您。 不幸的是,没有直接的方式来下载股票列表,但下面的代码通过遍历字母组来创建列表:

        AlphabeticIDIndexDownload dl1 = new AlphabeticIDIndexDownload();
        dl1.Settings.TopIndex = null;
        Response<AlphabeticIDIndexResult> resp1 = dl1.Download();

        writeStream.WriteLine("Id|Isin|Name|Exchange|Type|Industry");

        foreach (var alphabeticalIndex in resp1.Result.Items)
        {
            AlphabeticalTopIndex topIndex = (AlphabeticalTopIndex) alphabeticalIndex;
            dl1.Settings.TopIndex = topIndex;
            Response<AlphabeticIDIndexResult> resp2 = dl1.Download();

            foreach (var index in resp2.Result.Items)
            {
                IDSearchDownload dl2 = new IDSearchDownload();
                Response<IDSearchResult> resp3 = dl2.Download(index);


                int i = 0;
                foreach (var item in resp3.Result.Items)
                {
                    writeStream.WriteLine(item.ID + "|" + item.ISIN + "|" + item.Name + "|" + item.Exchange + "|" + item.Type + "|" + item.Industry);
                }

            }
        }

它约4分钟给了我一份约75,000份证券的清单。



Answer #5

我一直在研究这个问题几天,跟随着无尽的线索,接近但不是完全符合我之前的要求。

我需要的是一个简单的'符号,部门,行业'清单。 我正在使用Java,不想使用任何平台本机代码。

似乎大多数其他数据,如引用等等,都是可用的。

最后,接下来看看'finviz.com'的建议。 看起来只是票。 尝试使用以下内容:

http://finviz.com/export.ashx?v=111&t=aapl,cat&o=ticker这回来作为行,csv风格,带有标题行,由股票代码排序。 您可以继续添加代号。 在代码中,您可以读取流。 或者您可以让浏览器询问您是否打开或保存文件。

http://finviz.com/export.ashx?v=111&&o=ticker相同的csv风格,但拉动所有可用的符号(很多,在全球交易所)

用'screener'替换'export',数据将显示在浏览器中。

您可以使用更多的选项,一个用于网站上的每个筛选器元素。

到目前为止,这是获取我无法轻易获得的少数数据的最强大和最方便的编程方式。 而且,除了实时或近实时报价之外,它似乎很可能成为您可能需要的大部分单一来源。


Answer #6

那么,经过一些挖掘,雅虎不会提供任何“清单”与所有代号。 但是,这个网站提供了大量信息。 也许你可以在这里找到你要找的东西? http://www.gummy-stuff.org/Yahoo-data.htm

编辑:由于版权问题,该网站已关闭。


Answer #7

我有一个解决方法就是遍历这些扇区(当时你可以这样做......我最近没有测试过)。

当你这样做时,你最终会被阻止,因为YQL每天都会受到限制。

尽可能使用CSV API来避免这种情况。