使用 JQuery 获取维基百科信息框内容
我希望使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
维基百科的 JSON 似乎没有返回包装文档元素。这似乎阻止了根元素上的任何属性的选择。试试这个:
希望有效!
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:
Hope that works!