Изменились ли API данных, связанные с yahoo.finance (консоль YQL)?

Я пытаюсь использовать yql для финансовых данных Yahoo. Я проверил Show Community Table на консоли YQL, чтобы увидеть базу данных под тегом Yahoo. Я вижу таблицы под ним, но я не получаю здесь результатов, это выглядит следующим образом:::

выберите * из yahoo.finance.analystestimate, где символ в ('YHOO')

    {
 "query": {
  "count": 1,
  "created": "2016-03-28T10:25:01Z",
  "lang": "en-US",
  "diagnostics": {
   "url": [
    {
     "execution-start-time": "1",
     "execution-stop-time": "767",
     "execution-time": "766",
     "content": "http://www.datatables.org/yahoo/finance/yahoo.finance.analystestimate.xml"
    },
    {
     "execution-start-time": "771",
     "execution-stop-time": "1821",
     "execution-time": "1050",
     "content": "http://finance.yahoo.com/q/ae?s=YHOO"
    }
   ],
   "publiclyCallable": "true",
   "javascript": {
    "execution-start-time": "769",
    "execution-stop-time": "1823",
    "execution-time": "1054",
    "instructions-used": "5139",
    "table-name": "yahoo.finance.analystestimate"
   },
   "user-time": "1824",
   "service-time": "1806",
   "build-version": "0.2.842"
  },
  "results": {
   "results": {
    "symbol": "YHOO"
   }
  }
 }
}

здесь результаты отображаются как пустые.. Что-то изменилось? Как я могу узнать, что произошло?

Есть ли альтернативное решение, которое я могу использовать для получения этих данных?


person Devendra Chandode    schedule 28.03.2016    source источник
comment
Где он показывает пустой?   -  person WhoAmI    schedule 12.04.2016
comment
Вы не одиноки с этой проблемой, похоже, проблема с их API github. com/yql/yql-tables/issues/471   -  person Ben Smith    schedule 18.04.2016


Ответы (2)


JS, который разработчик использовал для создания таблицы, больше не работает. Это он частично отформатирован. Вы можете видеть, что он захватывает страницу, а затем очищает ее.

function getelement(row) {
    if (row.hasOwnProperty("p")) return (row.p.text());
    return (row.font.text());
} // Setup Query from finance.yahoo.com 
var url = "http://finance.yahoo.com/q/ae?s=" + symbol;
var restquery = y.rest(url);
var rawresult = restquery.accept("text/html").get().response;
var aequery = y.xpath(rawresult, "//table[@class='yfnc_tableout1']/tr[count(td)=0]/parent::*|" + "//table[@class='yfnc_tableout1']/tr/td/table");
// Process Results 
var aedata = < results symbol = {
        symbol
    } > < /results>; var i = 0; while(i < aequery.length()) { var table = aequery[i]; var thead = table.tr[0]; var tname = thead.th[0].strong.text().toString().replace(/ / g,
    "");
var fname1 = thead.th[1].p.text().toString().replace(/\n.*/, "");
var fname2 = thead.th[2].p.text().toString().replace(/\n.*/, "");
var fname3 = thead.th[3].p.text().toString().replace(/\n.*/, "");
var fname4 = thead.th[4].p.text().toString().replace(/\n.*/, "");
fname1 = fname1.replace(/[\s\.]+/g, "").replace(/\&/, "");
fname2 = fname2.replace(/[\s\.]+/g, "").replace(/\&/, "");
fname3 = fname3.replace(/[\s\.]+/g, "").replace(/\&/, "");
fname4 = fname4.replace(/[\s\.]+/g, "").replace(/\&/, "");
var tblval = < {
        tname
    } > < /{tname}>; var j = 1; while(j < table.tr.length()) { var row = table.tr[j].td; var rname = row[0].p.text().toString().replace(/ [\s\.] + /g, ""); rname = rname.replace(/\ (.*\) / g,
    "").replace(/\%/, "").replace(/^(\d)/, "_$1");
rname = rname.replace(/\//, "");
var rval1 = getelement(row[1]);
var rval2 = getelement(row[2]);
var rval3 = getelement(row[3]);
var rval4 = getelement(row[4]);
tblval.appendChild( < {
            rname
        } > < {
            fname1
        } > {
            rval1
        } < /{fname1}> <{fname2}>{rval2}</ {
            fname2
        } > < {
            fname3
        } > {
            rval3
        } < /{fname3}> <{fname4}>{rval4}</ {
            fname4
        } > < /{rname}>); j = j + 1; } aedata.appendChild(tblval); i = i + 1; } 
        // Return aedata strucuture 
        response.object = aedata;
person Harry    schedule 21.04.2016

Да, структура HTML для finance.yahoo.com была изменена где-то в начале 2015 года, поэтому реализация таблицы YQL нуждается в обновлении.

Пожалуйста, проверьте следующие запросы на вытягивание GH, которые направлены на исправление текущих нерешенных проблем:

Они немного перекрываются, поэтому вы можете проверить их оба (желательно проверить первый).

Или вы можете проверить мою ветвь yql-tables (которая также содержит множество других исправлений), где Я объединил в него этот PR, так что найдите обновленный yahoo.finance.analystestimate.xml здесь, другой нет слияние поверх другого.

person kenorb    schedule 21.04.2016