是否有任何类型的 API 仅提供简单的符号查找服务?即,输入公司名称,它会告诉你股票代码?我已经尝试过对 Google 财经进行屏幕抓取,但过了一会儿它会限制你的速度,你必须输入验证码。我正在尝试批量查找大约 2000 个股票代码。有任何想法吗?
11 回答
您可以像这样使用雅虎的符号查找:
其中查询是公司名称。
你会得到这样的回报:
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 并且很容易使用。
嘘……不要告诉任何人。
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”字段(如果存在)告诉您当前的盘前或盘后价格。
您可以向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的文章,其中包括用于请求数据的各种标签。
纳斯达克网站为每个证券交易所(纽约证券交易所、美国证券交易所和纳斯达克)的股票代码提供单独的 CSV 列表。您需要完成验证码并获取 CSV 转储。
如果您不想注册服务,我可能会自己回到交易所;他们中的大多数还没有验证码...
符号查找页面:
- 纽约证券交易所位于http://www.nyse.com/interface/html/SymbolLookup.html
- 纳斯达克位于http://www.nasdaq.com/asp/NasdaqSymLookup2.asp?mode=stock
- 伦敦证券交易所位于http://www.londonstockexchange.com/en-gb/pricesnews/prices/Trigger/genericsearch.htm
- ASX位于http://www.asx.com.au/asx/research/codeLookup.do
ETC...
使用 YQL,您无需担心。它是雅虎的一种查询语言,您可以获取所有股票数据,包括股票代码的公司名称。它是一个 REST API,它通过 XML 或 JSON 返回结果。我的网站上有完整的教程和源代码,请看一下:http ://www.jarloo.com/yahoo-stock-symbol-lookup/
目前,纳斯达克网站公开提供包含批量列表的 CSV 文件——它按首字母划分。
http://www.nasdaq.com/screening/companies-by-name.aspx?letter=A&render=download
Google Finance 有一个 API - 您可能必须申请开发人员密钥,但至少您可以省去屏幕抓取的麻烦:http ://code.google.com/apis/finance/reference.html
您可以在此处使用公司基础 API 中的“公司搜索”操作:http ://www.mergent.com/servius/
使用 YQL:一种类似 sql 的语言从公共 api 检索内容: YQL 控制台(外部链接)
它为您提供了一个很好的 XML 文件来使用!