wikipedia-api - wikipedia api json
¿Cómo obtener contenido de Wikipedia usando la API de Wikipedia? (9)
Quiero obtener el primer párrafo de un artículo de Wikipedia.
¿Cuál es la consulta API para hacerlo?
Consulte ¿Hay una API de wikipedia limpia solo para recuperar el resumen de contenido? para otras soluciones propuestas. Aquí hay uno que sugerí:
En realidad, hay una propina muy bonita llamada extracts que se puede utilizar con consultas diseñadas específicamente para este propósito. Los extractos le permiten obtener extractos de artículos (texto truncado del artículo). Hay un parámetro llamado exintro que se puede usar para recuperar el texto en la sección zeroth (sin recursos adicionales, como imágenes o cuadros de información). También puede recuperar extractos con granularidad más fina, como por un cierto número de caracteres ( exchars ) o por un cierto número de oraciones ( exsentences )
Aquí hay una consulta de ejemplo http://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro=&titles=Stack%20Overflow y la API sandbox http://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&prop=extracts&format=json&exintro=&titles=Stack%20Overflow para experimentar más con esta consulta.
Tenga en cuenta que si desea específicamente el primer párrafo, aún necesita obtener la primera etiqueta. Sin embargo, en esta llamada API no hay elementos adicionales como imágenes para analizar. Si está satisfecho con este resumen introductorio, puede recuperar el texto ejecutando una función como strip_tag de php que elimina las etiquetas html.
Consulte esta sección en los documentos de MediaWiki
Estos son los parámetros clave.
prop=revisions&rvprop=content&rvsection=0
rvsection = 0 especifica que solo se devuelve la sección principal.
Mira este ejemplo.
Para obtener el HTML, puede usarlo de manera similar use action = parse http://en.wikipedia.org/w/api.php?action=parse§ion=0&prop=text&page=pizza
Tenga en cuenta que tendrá que eliminar cualquier plantilla o cuadro de información.
Lo hago de esta manera:
https://en.wikipedia.org/w/api.php?action=opensearch&search=bee&limit=1&format=json
La respuesta que obtienes es una matriz con los datos, fácil de analizar:
[
"bee",
[
"Bee"
],
[
"Bees are flying insects closely related to wasps and ants, known for their role in pollination and, in the case of the best-known bee species, the European honey bee, for producing honey and beeswax."
],
[
"https://en.wikipedia.org/wiki/Bee"
]
]
Para obtener solo el primer párrafo, limit=1
es lo que necesita.
Puede descargar la base de datos de Wikipedia directamente y analizar todas las páginas en XML con Wiki Parser , que es una aplicación independiente. El primer párrafo es un nodo separado en el XML resultante.
Alternativamente, puede extraer el primer párrafo de su salida de texto sin formato.
Puede obtener la introducción del artículo en Wikipedia consultando páginas como https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=java . Solo necesita analizar el archivo json y el resultado es texto sin formato que se ha limpiado, incluida la eliminación de enlaces y referencias.
Puede usar el campo extract_html
del punto final REST de resumen para esto: por ejemplo, https://en.wikipedia.org/api/rest_v1/page/summary/Cat .
Nota: Esto apunta simplemente al contenido un poco eliminando la mayoría de las pronunciaciones, principalmente entre paréntesis en algunos casos.
Puedes usar JQuery para hacer eso. Primero crea la url con los parámetros apropiados. Verifique este link para comprender lo que significan los parámetros. Luego use el método $.ajax()
para recuperar los artículos. Tenga en cuenta que wikipedia no permite la solicitud de origen cruzado. Es por eso que estamos usando dataType : jsonp
en la solicitud.
var wikiURL = "https://en.wikipedia.org/w/api.php";
wikiURL += ''?'' + $.param({
''action'' : ''opensearch'',
''search'' : ''your_search_term'',
''prop'' : ''revisions'',
''rvprop'' : ''content'',
''format'' : ''json'',
''limit'' : 10
});
$.ajax( {
url: wikiURL,
dataType: ''jsonp'',
success: function(data) {
console.log(data);
}
} );
Si necesita hacer esto para una gran cantidad de artículos, en lugar de consultar el sitio web directamente, considere descargar un volcado de base de datos de Wikipedia y luego acceder a él a través de una API como JWPL .
<script>
function dowiki(place) {
var URL = ''https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext='';
URL += "&titles=" + place;
URL += "&rvprop=content";
URL += "&callback=?";
$.getJSON(URL, function (data) {
var obj = data.query.pages;
var ob = Object.keys(obj)[0];
console.log(obj[ob]["extract"]);
try{
document.getElementById(''Label11'').textContent = obj[ob]["extract"];
}
catch (err) {
document.getElementById(''Label11'').textContent = err.message;
}
});
}
</script>