【问题标题】:Getting Wikipedia infobox content with JQuery使用 JQuery 获取维基百科信息框内容
【发布时间】:2012-01-24 02:19:31
【问题描述】:

我希望使用 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 换成 .logo 效果很好。

很高兴提供更多信息,但我已经为此花费了数小时并尝试了很多排列,以至于我什至不确定什么是相关的......

TIA

【问题讨论】:

  • 那么问题/预期结果究竟是什么?

标签: jquery wikipedia wikipedia-api


【解决方案1】:

似乎 Wikipedia 的 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());
});

希望有效!

【讨论】:

  • 谢谢 - 效果很好。我从来没有想过这个
猜你喜欢
  • 2011-12-26
  • 2020-02-02
  • 2016-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
  • 2016-02-25
  • 1970-01-01
相关资源
最近更新 更多