API:Query
| Esta página es parte de la documentación de la API de acciones de MediaWiki. |
El módulo action=query te permite obtener información sobre un wiki y los datos almacenados en él, como el wikitext de una página en particular, los enlaces y categorías de un conjunto de páginas, o el token que necesitas para
change wiki content.
API Documentación
action=query(main | query)
Fetch data from and about MediaWiki. All data modifications will first have to use query to acquire a token to prevent abuse from malicious sites.
Specific parameters: Other general parameters are available.
Examples:
|
Módulos de consulta
El módulo de consulta tiene tres tipos de submódulos (también llamados módulos de consulta):
- Metainformation sobre la wiki y el usuario conectado.
- Properties de páginas, incluidas las revisiones de página y el contenido.
- Lists de páginas que coinciden con ciertos criterios.
Ejemplos
Ejemplo 1: Especificando páginas
A diferencia de los módulos de consulta meta y lista, todos los módulos de consulta de propiedades funcionan en un conjunto de páginas que se pueden especificar de una de las siguientes maneras:
- Por nombre usando el parámetro
titles, p.ej.,titles=Foo|Bar|Main_Page. - Por ID de página usando el parámetro
pageids, p.ej.,pageids=123|456|75915. - Por ID de revisión utilizando el parámetro
revids, p.ej.,revids=478198|54872|54894545. La mayoría de los módulos de consulta convertirán la ID de revisión a la ID de página correspondiente. Solo prop=revisions usa actualmente la ID de revisión en sí. - Utilizando un generator.
Solicitud GET
Respuesta
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 1130,
"ns": 0,
"title": "Avicenna"
},
{
"pageid": 17412,
"ns": 0,
"title": "Klein bottle"
},
{
"pageid": 33642,
"ns": 0,
"title": "Warrant"
}
]
}
}
Ejemplo 2: Normalización de título
Normalización de títulos convierte títulos de páginas a su forma canónica.
Esto significa poner en mayúscula el primer carácter, reemplazar los guiones bajos con espacios y cambiar el espacio de nombres a la forma localizada definida para esa wiki.
Solicitud GET
Respuesta
| Respuesta |
|---|
{
"batchcomplete": true,
"query": {
"normalized": [
{
"fromencoded": false,
"from": "Project:articleA",
"to": "Wikipedia:ArticleA"
},
{
"fromencoded": false,
"from": "article_B",
"to": "Article B"
}
],
"pages": [
{
"ns": 0,
"title": "Article B",
"missing": true
},
{
"ns": 4,
"title": "Wikipedia:ArticleA",
"missing": true
}
]
}
}
|
Ejemplo 3: títulos Desaparecidos y nulos
Los títulos que no existan o que no sean válidos tendrán un atributo de missing o invalid establecido en la respuesta.
En formatos de salida que admitan claves de matriz numéricas, los títulos faltantes e inválidos tendrán IDs de página negativas.
In some cases, a title can be viewed by a user but cannot be accessed by the API, such as pages that mirror content from another wiki.
These titles will have a known attribute set in the response.
Solicitud GET
Respuesta
| Respuesta |
|---|
{
"batchcomplete": true,
"query": {
"pages": [
{
"ns": 0,
"title": "Doesntexist",
"missing": true
},
{
"title": "Talk:",
"invalidreason": "The requested page title is empty or contains only the name of a namespace.",
"invalid": true
},
{
"pageid": 15580374,
"ns": 0,
"title": "Main Page"
}
]
}
}
|
Ejemplo 4: consultas continuas
Cuando todo el dato no se devuelva en la respuesta de una consulta, habrá un atributo continue para indicar que hay más dato.
Para obtener más datos, agregue sus valores a la solicitud original.
Solicitud GET
Respuesta
| Respuesta |
|---|
{
"continue": {
"accontinue": "List_of_19th_century_baseball_players",
"continue": "-||"
},
"batchcomplete": "",
"query": {
"allcategories": [
{
"*": "List of"
},
{
"*": "List ofPalestinians"
},
{
"*": "List of \"M\" series military vehicles"
},
{
"*": "List of ''The Fast and the Furious'' characters"
},
{
"*": "List of 100 Deeds for Eddie McDowd"
},
{
"*": "List of 1919 Actors"
},
{
"*": "List of 1972 births"
},
{
"*": "List of 1999 ballet premieres"
},
{
"*": "List of 19th-century Russian artists"
},
{
"*": "List of 19th century Russian artists"
}
]
}
}
|
Ejemplo 5: Batchcomplete
La API devuelve un elemento batchcomplete para indicar que todo el dato para el lote actual de artículos ha sido devuelto.
MW 1.25+
En la respuesta de la consulta de muestra anterior, se ha incluido batchcomplete para indicar que se ha devuelto todo el dato de cada una de las tres imágenes.
La próxima continuación comenzará devolver dato para el siguiente conjunto de 3 imágenes.
Solicitud GET
Respuesta
| Respuesta |
|---|
{
"batchcomplete": true,
"continue": {
"aicontinue": "20020822143445|Do_You_Want_to_Know_a_Secret_(Beatles_song_-_sample).ogg",
"continue": "-||"
},
"query": {
"allimages": [
{
"name": "Simon_and_Garfunkel_-_Mrs_Robinson.ogg",
"timestamp": "2002-08-04T19:55:17Z",
"url": "https://upload.wikimedia.org/wikipedia/en/6/64/Simon_and_Garfunkel_-_Mrs_Robinson.ogg",
"descriptionurl": "https://en.wikipedia.org/wiki/File:Simon_and_Garfunkel_-_Mrs_Robinson.ogg",
"descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=67723",
"ns": 6,
"title": "File:Simon and Garfunkel - Mrs Robinson.ogg"
},
{
"name": "Simon_and_Garfunkel_-_Scarborough_Fair.ogg",
"timestamp": "2002-08-04T20:01:36Z",
"url": "https://upload.wikimedia.org/wikipedia/en/c/c1/Simon_and_Garfunkel_-_Scarborough_Fair.ogg",
"descriptionurl": "https://en.wikipedia.org/wiki/File:Simon_and_Garfunkel_-_Scarborough_Fair.ogg",
"descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=67779",
"ns": 6,
"title": "File:Simon and Garfunkel - Scarborough Fair.ogg"
},
{
"name": "Beatles_please_me.ogg",
"timestamp": "2002-08-22T14:34:00Z",
"url": "https://upload.wikimedia.org/wikipedia/en/e/ee/Beatles_please_me.ogg",
"descriptionurl": "https://en.wikipedia.org/wiki/File:Beatles_please_me.ogg",
"descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=74826",
"ns": 6,
"title": "File:Beatles please me.ogg"
}
]
}
}
|
Ejemplo 6: Generators
Usa generadores si deseas obtener datos sobre un conjunto de páginas
Por ejemplo, para obtener datos sobre páginas en una determinada categoría, en lugar de consultar list=categorymembers y luego consultar nuevamente con pageids configurado en todas las páginas devueltas, combine las dos llamadas API en una utilizando generator=categorymembers.
Cuando utilices un módulo de lista como un generador, no necesitas especificar las páginas.
Sin embargo, para un módulo de propiedades, debes specify the pages en las que trabajará el generador.
Por ejemplo, para cargar todas las páginas que estén vinculadas desde la página principal, usa generator=links&titles=Main%20Page.
Los parámetros pasados a un generador deben tener el prefijo g. Por ejemplo, cuando uses
generator=backlinks, usa gbllimit en lugar de bllimit.
La consulta de muestra abajo, obtiene enlaces y categorías para las primeras tres páginas en el espacio de nombres principal que comiencen con "Ba".
Solicitud GET
Respuesta
| Respuesta |
|---|
{
"continue": {
"plcontinue": "14977970|0|Kirkwall_Ba_game",
"continue": "||categories"
},
"query": {
"pages": [
{
"pageid": 98178,
"ns": 0,
"title": "Ba",
"links": [
{
"ns": 0,
"title": "BA"
},
{
"ns": 4,
"title": "Wikipedia:Mainspace"
},
{
"ns": 4,
"title": "Wikipedia:Naming conventions (capitalization)"
},
{
"ns": 4,
"title": "Wikipedia:Protection policy"
},
{
"ns": 4,
"title": "Wikipedia:Redirect"
},
{
"ns": 10,
"title": "Template:R from miscapitalisation"
},
{
"ns": 10,
"title": "Template:R from modification"
},
{
"ns": 10,
"title": "Template:R to disambiguation page"
},
{
"ns": 14,
"title": "Category:Redirects from ambiguous terms"
},
{
"ns": 14,
"title": "Category:Redirects from other capitalisations"
}
],
"categories": [
{
"ns": 14,
"title": "Category:Redirects from ambiguous terms"
},
{
"ns": 14,
"title": "Category:Redirects from other capitalisations"
},
{
"ns": 14,
"title": "Category:Unprintworthy redirects"
}
]
},
{
"pageid": 14977970,
"ns": 0,
"title": "Ba'"
},
{
"pageid": 33351890,
"ns": 0,
"title": "Ba'Al Shem Tov"
}
]
}
}
|
Avisos posibles
| Mensaje de aviso | Causa |
|---|---|
| No se ha implementado soporte para páginas especiales. | Si se lanza un título en el Especial: o Media: el espacio de nombres está dado. Las páginas en estos espacios de nombres no se pueden consultar. |
| Redirect resolution cannot be used together with the revids parameter. Any redirects the revids point to have not been resolved. | Se genera si el parámetro redirect se usa en una consulta que especifica páginas que usan revids.
|
Historial de parámetros
- v1.21: Introducido
continue - v1.24: Introducido
rawcontinue(nota raw continuation era el comportamiento por defecto hasta v1.26)
Notas adicionales
- Especificar títulos a través de
titlesopageidsestá limitado a 50 títulos por consulta, o 500 para aquellos con el derechoapihighlimits. - Usa múltiples módulos de consulta juntos para obtener lo que necesites en una solicitud, p.ej.,
prop=info|revisions&list=backlinks|embeddedin|allimages&meta=userinfo. - Generators always pass page titles to the query module. Unlike lists (which may include additional data by default), generators should not output any information themselves, unless when explicitly requested via the generator module's query parameters.
Resolviendo redirecciones
Las redirecciones se pueden resolver automáticamente, de modo que se devuelva el objetivo de una redirección en lugar del título dado.
Cuando estén presentes, siempre contendrán atributos from y to y pueden contener un atributo tofragment para los redireccionamientos que apuntan a secciones específicas.
Normalización y redirección, ambas pueden tener lugar.
En el caso de múltiple redirecciones, todas serán resueltas, y en caso de una redirección circular, no podría haber una página en la sección de 'pages' sección (ve también below).
La resolución de redireccionamiento no se puede usar en combinación con el parámetro revids= o con un generador que genere revids; hacer eso producirá un advertencia y no resolverá los redireccionamientos para los revids especificados.
Los ejemplos siguientes muestran cómo funciona el parámetro redirects.
| Resultado |
|---|
{
"batchcomplete": true,
"query": {
"redirects": [
{
"from": "Main page",
"to": "Main Page"
}
],
"pages": [
{
"pageid": 15580374,
"ns": 0,
"title": "Main Page"
}
]
}
}
|
| Resultado |
|---|
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 217225,
"ns": 0,
"title": "Main page"
}
]
}
}
|
| Resultado |
|---|
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 217225,
"ns": 0,
"title": "Main page",
"contentmodel": "wikitext",
"pagelanguage": "en",
"pagelanguagehtmlcode": "en",
"pagelanguagedir": "ltr",
"touched": "2017-12-17T02:02:05Z",
"lastrevid": 777924062,
"length": 170,
"redirect": true
}
]
}
}
|
| Resultado |
|---|
{
"batchcomplete": true,
"query": {
"redirects": [
{
"from": "Wikipedia:!--",
"to": "Wikipedia:Manual of Style",
"tofragment": "Invisible comments"
}
],
"pages": [
{
"pageid": 33697,
"ns": 4,
"title": "Wikipedia:Manual of Style"
}
]
}
}
|
| Resultado |
|---|
{
"batchcomplete": true,
"query": {
"normalized": [
{
"fromencoded": false,
"from": "page1",
"to": "Page1"
}
],
"redirects": [
{
"from": "Page1",
"to": "Page2"
},
{
"from": "Page2",
"to": "Page3"
},
{
"from": "Page3",
"to": "Page1"
}
],
"pages": [
{
"ns": 0,
"title": "Page1",
"missing": true
}
]
}
}
|
Véase también
- API:Main page - La guía de inicio rápida.
- API:Raw query continue - Contiene información sobre como usar el parámetro
rawcontinue.
| This page or project is maintained by Core Platform Team.
Get help:
|