我正在寻找一种方法来获取雅虎财经的所有共同基金和ETF代码清单。我找到了一些解决方案,例如:
https://github.com/Benny-/Yahoo-ticker-symbol-downloader
或
http://investexcel.net/all-yahoo-finance-stock-tickers/
但不幸的是,在检查了几十个随机代码后,其中大多数都不属于共同基金类别。拥有这些代码清单似乎很有用,因为我可以找到一种方法来检查自动收报机的类别。
在Yahoo Finance网站上使用搜索框,弹出显示自动收报机的类别。如何以编程方式复制此功能或使用例如YQL?
修改
遵循丹尼尔的建议后,我成功地过滤了代号和 在我的GitHub上更新它们: https://github.com/MichaelDz6/Yahoo_Finance_ETFs_Web_Scraper
答案 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"}}}
无论哪种结果都是空的。