2016-03-28 10 views
6

yahooの財務データにyqlを使用しようとしています。私はYQLコンソールのコミュニティテーブルを表示して、Yahooタグの下のデータベースを確認しました。 次のようにここにある:::yahoo.financeに関連するデータAPIは変更されていますか(YQLコンソール)?

は(「YHOO」)内のシンボル

yahoo.finance.analystestimateから選択*私はその下の表を見ることができますが、私は結果 を取得しておりません
{ 
"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" 
    } 
    } 
} 
} 

ここでの結果は空になります。 何か変更がありますか?何が起こったのかを知るにはどうすればいいですか?

このデータを取得するために使用できる代替ソリューションはありますか?

+0

ここでは空を表示していますか? – WhoAmI

+0

あなたはこの問題を抱えているだけではなく、API https://github.com/yql/yql-tables/issues/471に問題があるようです –

答えて

0

私たちはもはや働いていないテーブルを作成するために開発者が使用した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; 
0

YQLテーブルの実装が更新を必要とするので、はい、finance.yahoo.comのためのHTML構造は、2015年の初めにどこかに変更されました。

現在の未解決の問題を解決することを目指して、次のGHプルリクエストを確認してください:

彼らは重複のビットですので、あなたはそれらの両方をテストすること(最初にチェックすることをお勧めします)。

それとも、私のfork of yql-tablesをチェックする(だけでなく、他の修正の負荷を構成されている)私はそれにこのPRを合併してきたところなので、yahoo.finance.analystestimate.xml in hereを更新見つけることができ、他の一つは、他の1の上にいないmergeを行います。

関連する問題