2015-04-09 6 views
3

Я пытаюсь использовать YQL для доступа к основам перечисленных компаний. Но то, что появляется на странице финансов Yahoo, не возвращается из запросов YQL. В частности мне нужно извлечь данные из баланса и отчета о прибылях и убытках, пример запроса для Apple в YQL, как:YQL не возвращает данные из баланса или отчета о прибылях и убытках

SELECT * FROM yahoo.finance.balancesheet WHERE symbol='AAPL'

Это, однако, только возвращает временные рамки (квартальный), и больше ничего.

Ссылка на YQL консоли моего образца запроса here

ли данные недоступными для YQL или есть что-то не так с тем, как я бегаю запрос? Как я могу получить полный список данных, как в http://finance.yahoo.com/q/bs?s=AAPL через YQL?

ответ

5

Ваш запрос работал нормально. Однако, месяц или два назад, количество yahoo.finance YQL «таблиц» перестало работать.

IOW, вы делаете это правильно, но YQL сломан.

Если мышь над yahoo.finance.balancesheet записи в левом столбце консоли YQL, кнопки помечены убывание и ЦСИ появляются. Если вы нажмете src, он выберет код для очистки: http://www.datatables.org/yahoo/finance/yahoo.finance.balancesheet.xml. Чтобы сделать текст E4X разборчивым, щелкните правой кнопкой мыши и выберите «Просмотр источника» или используйте wget или curl из командной строки.

Обратите внимание, что код выбирает http://finance.yahoo.com/q/bs?s=AAPL&quarterly, а затем использует запрос XPath для поиска данных:

var query = y.xpath(rawresult, "//table[@class='yfnc_tabledata1']/tr/td/table/tr"); 

Если вы принести page в ваш браузер и проверить HTML, вы обнаружите, что есть действительно table с класс yfnc_tabledata1. Однако он не имеет прямого дочернего элемента tr. По-видимому, Yahoo, должно быть, решила добавить элемент tbody. Вероятно, это объясняет, почему запрос больше не сбрасывает никаких данных.

На странице с кодом страницы Ryan Hoium в качестве автора. Небольшой поиск в Google приводит к github repository, где код живет вместе с кодом для других таблиц Yahoo Finance.

К сожалению, только yahoo.finance.sectors стол получил последнее внимание. Изменение заключалось в том, чтобы добавить двойные слэши в выражение XPath. Двойные косые черты расслабляют требование «прямого ребенка», позволяя, например, tr, все еще быть найденным, даже если есть промежуточный tbody. Однако, похоже, новая версия не была вытолкнута на публичный сайт.

+0

Действительно, я думаю, что это проблема, с которой они сталкиваются прямо сейчас. Но не знаю, когда это будет исправлено. Из своего репо (https://github.com/yql/yql-tables/tree/master/yahoo/finance) похоже, что никто не активно его обновлял –