如何从雅虎财经获得完整的股票代码清单?

ras*_*som 93 stocks yahoo-finance

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

雅虎拥有全球许多交易所的股票,期货等信息,我想要通过它们获得的所有股票代码的综合列表.我已经尝试过YQL,但是他们有一个"where symbol =(或in)"子句限制,所以我不能从符号中选择*.

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

有人可以帮忙吗?

Ian*_*Ooi 45

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

  • 这非常好,谢谢.您还可以使用"all"替换交换,以获取所有三个索引的代码. (5认同)
  • 谢谢伊恩.我需要雅虎的名单,因为他们也有美国以外的代码,所以纳斯达克不幸是不够的. (2认同)

小智 44

我设法通过使用此URL做了类似的事情:

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

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

  • 这似乎不再起作用了:( (9认同)
  • 或者如果json更像你的东西:[json](http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.industry%20where%20id%20in%20 (选择%20industry.id%20from%20yahoo.finance.sectors)格式= JSON&ENV =商店%3A%2F%2Fdatatables.org%2Falltableswithkeys) (8认同)

tr4*_*nc3 21

纳斯达克股票代表 ftp://ftp.nasdaqtrader.com/symboldirectory

2个文件nasdaqlisted.txt和otherlisted.txt是| 管道分开.这应该给你一个很好的所有股票清单.


GSe*_*See 14

我或许可以帮助(美国和非美国)股票和ETF的股票代码清单.

雅虎提供了一个收益日历,其中列出了宣布某一天收益的所有股票.这包括非美国股票.

例如,今天是:http://biz.yahoo.com/research/earncal/20120710.html

URL的最后一部分是您希望收入日历的日期(YYYYMMDD格式).您可以循环几天并刮掉当时报告收益的所有股票的符号.

无法保证雅虎拥有报告收益的所有股票的数据,特别是因为一些股票不再存在(破产,收购等),但这可能是一个不错的起点.

如果您熟悉R,可以使用 qmao包执行此操作.(如果您在安装时遇到问题,请参阅此帖子).

ec <- getEarningsCalendar(from="2011-01-01", to="2012-07-01") #this may take a while
s <- unique(ec$Symbol)
length(s)
#[1] 12223
head(s, 20) #look at the first 20 Symbols
# [1] "CVGW"    "ANGO"    "CAMP"    "LNDC"    "MOS"     "NEOG"    "SONC"   
# [8] "TISI"    "SHLM"    "FDO"     "FC"      "JPST.PK" "RECN"    "RELL"   
#[15] "RT"      "UNF"     "WOR"     "WSCI"    "ZEP"     "AEHR"   
Run Code Online (Sandbox Code Playgroud)

这不包括任何ETF,期货,期权,债券,外汇或共同基金.

你可以在这里从雅虎获得ETF列表:http://finance.yahoo.com/etf/browser/mkt 只显示前20个.你需要在该页面底部显示"全部显示"链接的URL .您可以抓取页面以找出有多少ETF,然后构建一个URL.

L <- readLines("http://finance.yahoo.com/etf/browser/mkt")
# Sorry for the ugly regex
n <- gsub("^(\\w+)\\s?(.*)$", "\\1", 
          gsub("(.*)(Showing 1 - 20 of )(.*)", "\\3",  
               L[grep("Showing 1 - 20", L)]))
URL <- paste0("http://finance.yahoo.com/etf/browser/mkt?c=0&k=5&f=0&o=d&cs=1&ce=", n)
#http://finance.yahoo.com/etf/browser/mkt?c=0&k=5&f=0&o=d&cs=1&ce=1442
Run Code Online (Sandbox Code Playgroud)

现在,您可以从该页面上的表中提取代码

library(XML)
tbl <- readHTMLTable(URL, stringsAsFactors=FALSE)
dat <- tbl[[tail(grep("Ticker", tbl), 1)]][-1, ]
colnames(dat) <- dat[1, ]
dat <- dat[-1, ]
etfs <- dat$Ticker # All ETF tickers from yahoo
length(etfs)
#[1] 1442
head(etfs)
#[1] "DGAZ" "TAGS" "GASX" "KOLD" "DWTI" "RTSA"
Run Code Online (Sandbox Code Playgroud)

这是关于我可以提供的所有帮助,但你可以做类似的事情,通过抓取这些页面来获得他们提供的一些期货(这些只是美国期货)

http://finance.yahoo.com/indices?e=futures, http://finance.yahoo.com/futures?t=energy, http://finance.yahoo.com/futures?t=metals, HTTP: //finance.yahoo.com/futures?t=grains, http://finance.yahoo.com/futures?t=livestock, http://finance.yahoo.com/futures?t=softs, HTTP:// finance.yahoo.com/futures?t=indices ,

而且,对于美国和非美国指数,你可以抓住这些页面

http://finance.yahoo.com/intlindices?e=americas, http://finance.yahoo.com/intlindices?e=asia, http://finance.yahoo.com/intlindices?e=europe, HTTP: //finance.yahoo.com/intlindices?e=africa, http://finance.yahoo.com/indices?e=dow_jones, http://finance.yahoo.com/indices?e=new_york, HTTP:// finance.yahoo.com/indices?e=nasdaq, http://finance.yahoo.com/indices?e=sp, http://finance.yahoo.com/indices?e=other, HTTP://融资. yahoo.com/indices?e=treasury, http://finance.yahoo.com/indices?e=commodities

  • 正如你所写的那样,我可能不会以这种方式得到所有的代码,而对于我的项目来说,它是*all*(完整的),或者无关紧要.但非常感谢你的全面回答,GSee.欣赏它!祝你有美好的一天 :-) (2认同)

小智 12

Yahoo!Finance API有一个不错的C#包装器,可以在http://code.google.com/p/yahoo-finance-managed/找到它.遗憾的是,没有直接下载股票代码列表的方法,但以下内容通过迭代字母组来创建列表:

        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);
                }

            }
        }
Run Code Online (Sandbox Code Playgroud)

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

  • 对于我们这些不使用C#的人,你能运行这段代码并将输出的副本放在pastebin上吗? (18认同)
  • 我觉得这不再适用了.提到的包装器API向http://biz.yahoo.com/i/发出请求,该请求似乎已更改(重定向到finance.yahoo.com/q),并且不再包含XPath建议的表. (3认同)

小智 8

我已经研究了几天,跟随无尽的线索,接近但不完全是我追求的.

我需要一个简单的"符号,部门,行业"清单.我在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样式,但是拉出所有可用的符号(很多,跨越全球交易所)

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

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

到目前为止,这是获取我无法轻易获得的少量数据的最强大,最方便的编程方式.并且,看起来这个网站很可能只是您可能需要的大部分内容,而不是实时或接近实时的报价.

  • 我加载的每个网址都会重定向到http://finviz.com/elite.ashx (4认同)

小智 5

雅虎符号/代码/股票的完整列表可在以下网站下载(excel格式).http://www.myinvestorshub.com/yahoo_stock_list.php

清单更新至2016年1月:http: //investexcel.net/all-yahoo-finance-stock-tickers/

  • 这份清单是如何更新的? (2认同)
  • 似乎不完整且没有维护. (2认同)