2011-12-20 19 views
6

Estoy buscando utilizar JQuery para recuperar el contenido de la información de Wikipedia que contiene detalles de la compañía.Obteniendo el contenido de la infobox de Wikipedia con JQuery

Creo que estoy casi allí, pero simplemente no puedo conseguir el último paso del camino

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

La primera parte funciona - wikiHTML contiene el contenido de la página, analizada por la API de Wikipedia a formato HTML

Este contiene la tabla con el contenido de Ficha:

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

resultado es sólo un marcador de posición mesa vacía para poner los datos en

Funciona con algunos otros elementos de la página; por ejemplo, el intercambio de .infobox para .logo funciona perfectamente.

feliz para proporcionar más información, pero me he pasado horas en esto y intentado muchas permutaciones que no estoy seguro de lo que es relevante ya ...

TIA

+1

¿Cuál es exactamente el problema/resultado esperado? – Bergi

Respuesta

5

Parece JSON de Wikipedia doesn Devuelve un elemento de documento de ajuste. Esto parece estar impidiendo que se puedan seleccionar atributos en los elementos que están en la raíz. Pruebe esto:

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!

+0

Gracias, eso funciona perfectamente. Nunca me hubiera dado cuenta de eso –

+0

¡Sin sudar, me alegra saber que funcionó para ti! –

Cuestiones relacionadas