2011-12-20 30 views
6

我正在尋找使用JQuery來撤回包含公司詳細信息的Wikipedia信息框的內容。使用JQuery獲取Wikipedia信息框內容

我認爲,我幾乎沒有,但我只是無法得到的

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解析以HTML格式

這包含了信息框內容表:

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

結果只是一個空表佔位符把數據

它可以與頁面中的其他元素一起使用 - 例如,交換.infobox for .logo可以很好地工作。

樂意爲您提供更多的信息,但我在這花了幾個小時,並嘗試了許多排列,我甚至不知道什麼是相關的了...

TIA

+1

那麼究竟是什麼問題/預期的結果? – Bergi

回答

5

看來維基百科的JSON沒有按不返回包裝文檔元素。這似乎阻止了在根上的元素的任何屬性都是可選的。試試這個:

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

沒有汗水,很高興聽到它爲你工作! –