使用JQuery获取Wikipedia信息框内容

时间:2011-12-20 02:16:23

标签: jquery wikipedia wikipedia-api

我希望使用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包含页面内容,由Wikipedia API解析为HTML格式

这包含带有信息框内容的表:

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

result只是一个空表占位符,用于将数据放入

它适用于页面中的其他一些元素 - 例如,交换.infobox for .logo可以很好地工作。

很高兴提供更多信息,但我花了好几个小时来尝试这么多的排列,我甚至不确定什么是相关的......

TIA

1 个答案:

答案 0 :(得分: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());
});

希望有效!