使用 JQuery 获取维基百科信息框内容

发布于 2024-12-21 19:33:40 字数 756 浏览 2 评论 0原文

我希望使用 JQuery 来提取包含公司详细信息的维基百科信息框的内容。

我想我已经快到了,但我只是无法完成最后一步

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 替换为 .logo 效果非常好。

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

TIA

I'm looking to use JQuery to pull back contents of the Wikipedia infobox that contains company details.

I think that I'm almost there but I just can't get the last step of the way

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());
});

The first part works - wikiHTML contains the content of the page, parsed by the Wikipedia API to HTML format

This contains the table with the infobox content:

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

result is just an empty table placeholder to put the data in

It works with some other elements from the page - for example, swapping .infobox for .logo works perfectly.

Happy to provide more info, but I've spent hours on this and tried so many permutations that I'm not even sure what's relevant anymore...

TIA

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

混浊又暗下来 2024-12-28 19:33:40

维基百科的 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());
});

希望有效!

It seems Wikipedia's JSON doesn't return a wrapping document element. This appears to be preventing any attributes on the elements that are at the root from being selectable. Try this:

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());
});

Hope that works!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文