Yahoo Finance API获取所有共同基金和ETF代码的列表

时间:2017-09-14 09:39:39

标签: yql yahoo-finance yahoo-api quantitative-finance

我正在寻找一种方法来获取雅虎财经的所有共同基金和ETF代码清单。我找到了一些解决方案,例如:

https://github.com/Benny-/Yahoo-ticker-symbol-downloader

http://investexcel.net/all-yahoo-finance-stock-tickers/

但不幸的是,在检查了几十个随机代码后,其中大多数都不属于共同基金类别。拥有这些代码清单似乎很有用,因为我可以找到一种方法来检查自动收报机的类别。

enter image description here

在Yahoo Finance网站上使用搜索框,弹出显示自动收报机的类别。如何以编程方式复制此功能或使用例如YQL?

修改

  

遵循丹尼尔的建议后,我成功地过滤了代号和   在我的GitHub上更新它们:   https://github.com/MichaelDz6/Yahoo_Finance_ETFs_Web_Scraper

1 个答案:

答案 0 :(得分:2)

有可能告诉股票代码是共同基金或ETF,但共同基金和ETF之间很难区分。

作为一个例子,让我们采用零售商TIBIX的mututal基金。据我所知,只有共同基金和ETF在其个人资料标签中有“基金家庭”类别。因此,您需要YQL来检查股票代码是否包含内部包含“基金家族”的HTML范围。

原始YQL查询

select * from htmlstring where url='https://finance.yahoo.com/quote/TIBIX/profile?p=TIBIX' and xpath='//span/*[contains(.,"Fund Family")]//text()'

查询的端点

https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20htmlstring%20where%20url%3D'https%3A%2F%2Ffinance.yahoo.com%2Fquote%2FTIBIX%2Fprofile%3Fp%3DTIBIX'%20and%20xpath%3D'%2F%2Fspan%2F*%5Bcontains(.%2C%22Fund%20Family%22)%5D%2F%2Ftext()'&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys

如果您的股票代码是共同基金或ETF,查询应该返回此类回复:

{"query":{"count":1,"created":"2017-09-25T07:07:10Z","lang":"en-US","results":{"result":"Fund Family"}}}

无论哪种结果都是空的。