2011-12-20 43 views
6

Tôi đang tìm cách sử dụng JQuery để lấy lại nội dung của hộp thông tin Wikipedia chứa chi tiết công ty.Lấy nội dung của hộp thông tin Wikipedia bằng JQuery

Tôi nghĩ rằng tôi gần như có nhưng tôi chỉ không thể có được những bước cuối cùng của cách

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

Phần đầu hoạt động - wikiHTML chứa nội dung của trang, phân tích bởi các API Wikipedia sang định dạng HTML

này chứa các bảng với nội dung hộp thông tin:

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

kết quả chỉ là một giữ chỗ bàn trống để đưa các dữ liệu trong

Nó hoạt động với một số yếu tố khác từ trang - ví dụ, hoán đổi .infobox cho .logo hoạt động hoàn hảo.

hạnh phúc để cung cấp thêm thông tin, nhưng tôi đã dành nhiều thời gian về vấn đề này và cố gắng rất nhiều hoán vị rằng tôi thậm chí không chắc chắn những gì liên quan nữa ...

TIA

+1

Vì vậy, vấn đề chính xác/kết quả mong đợi là gì? – Bergi

Trả lời

5

Dường như JSON Wikipedia doesn không trả về một phần tử tài liệu gói. Điều này dường như ngăn chặn bất kỳ thuộc tính nào trên các phần tử ở gốc từ lựa chọn. Hãy thử điều này:

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

Hy vọng hoạt động!

+0

Cảm ơn bạn - hoạt động hoàn hảo. Tôi chưa bao giờ nghĩ ra rằng –

+0

Không có mồ hôi, vui mừng khi nghe nó làm việc cho bạn! –

Các vấn đề liên quan