2011-12-20 7 views
6

JQueryを使用して、会社の詳細が含まれているWikipedia infoboxの内容を取り戻そうとしています。JQueryでWikipediaのinfoboxコンテンツを取得する

私はほとんどそこだと思いますが、私はちょうど

var searchTerm="toyota"; 
var url="http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + searchTerm+"&redirects&prop=text&callback=?"; 
$.getJSON(url,function(data){ 
    wikiHTML = data.parse.text["*"]; 
    $wikiDOM = $(wikiHTML); 
    $("#result").append($wikiDOM.find('.infobox').html()); 
}); 

方法の最後のステップを得ることができない最初の部分が動作する - wikiHTMLは、ウィキペディアのAPIによって解析され、ページの内容が含まれています

<table class="infobox vcard" cellspacing="5" style="width:22em;"> 

結果は

01にデータを配置するだけで、空のテーブルのプレースホルダです:HTML形式

にこれは、インフォボックスのコンテンツを持つテーブルが含まれています

これはページの他のいくつかの要素で動作します。たとえば、.logoの.infoboxをスワップすると完全に動作します。

の詳細情報を提供させていただきますが、私はこれに時間を過ごし、私はもう、関連何でもわからないので、多くの順列を試してみた...

TIA

+1

問題/予期した結果は正確には何ですか? – Bergi

答えて

5

それはWikipediaのJSON doesnのですラッピング文書要素を返しません。これは、ルートにある要素の属性を選択できないようにしているようです。試してみてください:

var searchTerm="toyota"; 
var url="http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + searchTerm+"&redirects&prop=text&callback=?"; 
$.getJSON(url,function(data){ 
    wikiHTML = data.parse.text["*"]; 
    $wikiDOM = $("<document>"+wikiHTML+"</document>"); 
    $("#result").append($wikiDOM.find('.infobox').html()); 
}); 

うまくいきましょう!

+0

ありがとうございます - それは完璧に動作します。私はそれを理解したことがないだろう –

+0

それはあなたのために働いて聞いてうれしい汗、ない! –

関連する問題