101

是否有任何类型的 API 仅提供简单的符号查找服务?即,输入公司名称,它会告诉你股票代码?我已经尝试过对 Google 财经进行屏幕抓取,但过了一会儿它会限制你的速度,你必须输入验证码。我正在尝试批量查找大约 2000 个股票代码。有任何想法吗?

4

11 回答 11

106

您可以像这样使用雅虎的符号查找:

http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&callback=YAHOO.Finance.SymbolSuggest.ssCallback

其中查询是公司名称。

你会得到这样的回报:

YAHOO.Finance.SymbolSuggest.ssCallback(
{
    "ResultSet": {
        "Query": "ya",
        "Result": [
            {
                "symbol": "YHOO",
                "name": "Yahoo! Inc.",
                "exch": "NMS",
                "type": "S",
                "exchDisp": "NASDAQ"
            },
            {
                "symbol": "AUY",
                "name": "Yamana Gold, Inc.",
                "exch": "NYQ",
                "type": "S",
                "exchDisp": "NYSE"
            },
            {
                "symbol": "YZC",
                "name": "Yanzhou Coal Mining Co. Ltd.",
                "exch": "NYQ",
                "type": "S",
                "exchDisp": "NYSE"
            },
            {
                "symbol": "YRI.TO",
                "name": "YAMANA GOLD INC COM NPV",
                "exch": "TOR",
                "type": "S",
                "exchDisp": "Toronto"
            },
            {
                "symbol": "8046.TW",
                "name": "NAN YA PRINTED CIR TWD10",
                "exch": "TAI",
                "type": "S",
                "exchDisp": "Taiwan"
            },
            {
                "symbol": "600319.SS",
                "name": "WEIFANG YAXING CHE 'A'CNY1",
                "exch": "SHH",
                "type": "S",
                "exchDisp": "Shanghai"
            },
            {
                "symbol": "1991.HK",
                "name": "TA YANG GROUP",
                "exch": "HKG",
                "type": "S",
                "exchDisp": "Hong Kong"
            },
            {
                "symbol": "1303.TW",
                "name": "NAN YA PLASTIC TWD10",
                "exch": "TAI",
                "type": "S",
                "exchDisp": "Taiwan"
            },
            {
                "symbol": "0294.HK",
                "name": "YANGTZEKIANG",
                "exch": "HKG",
                "type": "S",
                "exchDisp": "Hong Kong"
            },
            {
                "symbol": "YAVY",
                "name": "Yadkin Valley Financial Corp.",
                "exch": "NMS",
                "type": "S",
                "exchDisp": "NASDAQ"
            }
        ]
    }
}
)

这是 JSON 并且很容易使用。

嘘……不要告诉任何人。

于 2009-11-04T19:11:48.220 回答
33

Google 财经允许您使用以下网址一次检索多达 100 个股票报价:

www.google.com/finance/info?infotype=infoquoteall&q=[ticker1],[ticker2],...,[tickern]

例如:

www.google.com/finance/info?infotype=infoquoteall&q=C,JPM,AIG

有人破译了这里的可用字段:

http://qsb-mac.googlecode.com/svn/trunk/Vermilion/Modules/StockQuoter/StockQuoter.py

当前价格(“l”)是实时的,延迟与雅虎财经相当。您应该注意一些怪癖。少数股票需要交易所前缀。例如,如果您查询“BTIM”,您将收到“错误请求”错误,但“AMEX:BTIM”有效。即使使用交易所前缀,一些股票也无法使用。例如,查询“FTWRD”和“NASDAQ:FTWRD”都会产生“错误请求”错误,即使 Google 财经确实有该 NASDAQ 股票的信息。

“el”字段(如果存在)告诉您当前的盘前或盘后价格。

于 2009-12-23T19:24:27.197 回答
25

您可以向http://finance.yahoo.com发送 HTTP 请求,请求符号、名称、报价和各种其他数据。数据以.CSV 格式返回,因此您可以在一个查询中请求多个符号。

因此,如果您发送:

http://finance.yahoo.com/d/quotes.csv?s=MSFT+F+ATT&f=sn

你会得到类似的东西:

"MSFT","Microsoft Corp"
"F","FORD MOTOR CO"
"ATT","AT&T"

这是一篇名为Downloading Yahoo Data的文章,其中包括用于请求数据的各种标签。

于 2009-05-19T23:31:53.687 回答
22

纳斯达克网站为每个证券交易所(纽约证券交易所、美国证券交易所和纳斯达克)的股票代码提供单独的 CSV 列表。您需要完成验证码并获取 CSV 转储。

http://www.nasdaq.com/screening/company-list.aspx

于 2010-12-06T22:25:32.487 回答
9

如果您不想注册服务,我可能会自己回到交易所;他们中的大多数还没有验证码...

符号查找页面:

ETC...

于 2009-05-19T23:33:29.440 回答
7

使用 YQL,您无需担心。它是雅虎的一种查询语言,您可以获取所有股票数据,包括股票代码的公司名称。它是一个 REST API,它通过 XML 或 JSON 返回结果。我的网站上有完整的教程和源代码,请看一下:http ://www.jarloo.com/yahoo-stock-symbol-lookup/

于 2010-11-25T16:17:42.907 回答
6

目前,纳斯达克网站公开提供包含批量列表的 CSV 文件——它按首字母划分。

http://www.nasdaq.com/screening/companies-by-name.aspx?letter=A&render=download

于 2011-03-11T03:34:31.570 回答
2

Google Finance 有一个 API - 您可能必须申请开发人员密钥,但至少您可以省去屏幕抓取的麻烦:http ://code.google.com/apis/finance/reference.html

于 2009-05-19T23:26:32.590 回答
1

您最好的选择可能是使用其他查找服务之一(仍然是屏幕抓取),并检查它们是否不需要验证码。

最后一个似乎在任何时候都不太可能需要验证码,但值得检查所有三个。

于 2009-05-19T23:16:23.013 回答
0

您可以在此处使用公司基础 API 中的“公司搜索”操作:http ://www.mergent.com/servius/

于 2010-08-02T20:31:43.767 回答
0

使用 YQL:一种类似 sql 的语言从公共 api 检索内容: YQL 控制台(外部链接)

它为您提供了一个很好的 XML 文件来使用!

于 2010-03-18T14:42:33.063 回答