2017-09-14 7 views
1

Je suis à la recherche d'un moyen d'obtenir la liste de tous les fonds communs de placement et les tickers ETF de Yahoo Finance. J'ai trouvé quelques solutions comme par exemple:Yahoo Finance API obtenir la liste de tous les fonds communs de placement et ETFs tickers

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

ou

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

Mais unfortunantely après avoir vérifié des dizaines de téléscripteurs au hasard la plupart d'entre eux n'appartenaient à la catégorie des fonds communs de placement. Ayant la liste de ces tickers semble utile aussi longtemps que je pourrais trouver un moyen de vérifier la catégorie ticker.

enter image description here

sur Yahoo Finance site utilisant la boîte de recherche, la catégorie pop-up show ticker. Comment répliquer cette fonctionnalité par programme ou en utilisant par exemple YQL?

EDIT:

Après avoir suivi Daniel de la conseil que j'ai réussi filtré tickers et les mises à jour sur mon GitHub: https://github.com/MichaelDz6/Yahoo_Finance_ETFs_Web_Scraper

Répondre

2

Il est possible de dire wether ticker est fonds commun de placement ou ETF mais il est difficile de distinguer entre fonds mutuels et ETF.

À titre d'exemple, prenons le fonds Mututal avec le ticker TIBIX. D'après ce que je sais, seuls les fonds communs de placement et les FNB ont la catégorie «Famille de fonds» dans leur onglet Profil. Vous avez donc besoin de YQL qui vérifie si le ticker contient une plage HTML contenant "Fund Family" à l'intérieur.

Raw YQL requête

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

Endpoint pour la requête

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 

Si vous Ticker est un fonds ou ETF mutuelle, la requête doit retourner une telle réponse:

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

Soit résultat moyen sera vide.