2016-03-28 27 views
6

Yahoo finansal verileri için yql kullanmaya çalışıyorum. Yahoo etiketinin altındaki veritabanını görmek için YQL konsolunda Göster Topluluğu Tablosunu kontrol ettim. Ben bunun altında tabloları görebilirsiniz ama sonuç burada aşağıdaki gibidir :::yahoo.finance ile ilgili veri api'nin değişimi (YQL Console) mu?

select * yahoo.finance.analystestimate dan ('YHOO') içinde sembol

almıyorum
{ 
"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" 
    } 
    } 
} 
} 

sonuçlar boş olarak gösteriliyor .. Bir şey mi değişti? Ne olduğunu nasıl öğrenebilirim?

Bu verileri elde etmek için kullanabileceğim alternatif bir çözüm var mı?

+0

Boş gösterilen nerede? – WhoAmI

+0

Bu sorunla yalnız değilsiniz, API https://github.com/yql/yql-tables/issues/471 ile ilgili bir sorun var gibi görünüyor –

cevap

0

Geliştiricinin oluşturduğu JS, artık çalışmıyoruz. Bu kısmen biçimlendirilmiş. Sayfayı tuttuğunu ve daha sonra kazımadığını görebiliyorsunuz. YQL tablo uygulaması güncelleştirilmesi gereken böylece

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

Evet, finance.yahoo.com için HTML yapısı 2015 yılı başında bir yerlerde değiştirildi.

akım mevcut sorunları düzeltmek için hedefler aşağıdaki GH çekme isteklerini kontrol edin:

Onlar örtüşme bit konum onları hem test edebilir, böylece (tercihen ilkini kontrol edin).

Yoksa kontrol edebilirsiniz benim İçine bu PR Birleştirdiğiniz (diğer düzeltmelerin yanı sürü oluşur), bu yüzden yahoo.finance.analystestimate.xml in here güncellenmiş bulmak fork of yql-tables, diğeri yapar değil merge diğeri üstünde.