2016-03-28 7 views
6

Sto cercando di utilizzare yql per i dati finanziari di yahoo. Ho controllato Show Community Table sulla console YQL per vedere il database sotto il tag Yahoo. posso vedere le tabelle sotto di essa, ma non sto ottenendo risultati qui è la seguente :::I cambiamenti di dati relativi a yahoo.finance sono correlati (console YQL)?

select * from yahoo.finance.analystestimate cui simbolo ('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" 
    } 
    } 
} 
} 

qui i risultati sono mostrati come vuoti .. Qualcosa è cambiato? Come posso scoprire cos'è successo?

Esiste una soluzione alternativa che posso utilizzare per ottenere questi dati?

+0

Dove viene visualizzato vuoto? – WhoAmI

+0

Non sei solo con questo problema, sembra che ci sia un problema con la loro API https://github.com/yql/yql-tables/issues/471 –

risposta

0

Il JS lo sviluppatore utilizzato per creare il tavolo non funziona più. Questo è parzialmente formattato. Puoi vedere che sta afferrando la pagina e poi lo schermo raschiandolo.

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; 
0

Sì, la struttura HTML per finance.yahoo.com è stato modificato in qualche parte all'inizio del 2015, in modo implementazione tavolo YQL necessita di un aggiornamento.

Si prega di verificare le seguenti richieste di pull GH che mira a risolvere le attuali questioni in sospeso:

Sono bit in sovrapposizione, in modo da potete provarli entrambi (preferibilmente controllare il primo).

Oppure si può controllare il mio fork of yql-tables (che consistono in un sacco di altre correzioni pure) dove sono fuse questo PR in esso, in modo da trovare aggiornato yahoo.finance.analystestimate.xml in here, non merge sopra l'altro l'altro lo fa.

Problemi correlati