Ad verba per numeros

Servicios y Utilidades
Thursday, May 22, 2008, 09:16 AM
Carlos Tejo me ha informado acerca de la existencia de un API para consumir la Wikipedia; esto es algo que para algunos de vosotros hubiese sido útil y para otros muchos todavía puede serlo. Mi recomendación es que le echéis un vistazo y la utilicéis allí donde os sea posible.

Muestro a continuación un ejemplo sencillo relativo al problema de asociar con un contenido distintas cadenas que pueden ser o no sinónimas y que ilustra el modo en que se puede obtener información para múltiples artículos simultaneamente.

http://en.wikipedia.org/w/api.php?action=query&titles=Pablo%20Picasso|Picasso|FDR|Franklin%20Roosevelt|Franklin%20Delano|Franklin%20Delano%20Roosevelt&prop=info&redirects&format=xml
El resultado en formato XML:
<?xml version="1.0" encoding="utf-8"?>
<api>
<query>
<redirects>
<r from="Picasso" to="Pablo Picasso" />
<r from="FDR" to="Franklin D. Roosevelt" />
<r from="Franklin Roosevelt" to="Franklin D. Roosevelt" />
<r from="Franklin Delano Roosevelt" to="Franklin D. Roosevelt" />
</redirects>
<pages>
<page ns="0" title="Franklin Delano" missing="" />
<page pageid="24176" ns="0" title="Pablo Picasso" touched="2008-05-20T02:15:17Z" lastrevid="213614540" counter="2038" length="35635" />
<page pageid="10979" ns="0" title="Franklin D. Roosevelt" touched="2008-05-22T03:27:45Z" lastrevid="214109266" counter="8338" length="118306" />
</pages>
</query>
</api>
La salida se puede obtener en múltiples formatos, entre ellos PHP serializado.

Otros cuantos ejemplos: cómo obtener la lista de imágenes de un artículo, la información relativa a una serie de imágenes y las páginas pertenecientes a una categoría dada:

http://en.wikipedia.org/w/api.php?action=query&prop=images&titles=Einstein&redirects&format=xml
<?xml version="1.0" encoding="utf-8"?>
<api>
<query>
<redirects>
<r from="Einstein" to="Albert Einstein" />
</redirects>
<pages>
<page pageid="736" ns="0" title="Albert Einstein">
<images>
<im ns="6" title="Image:1919 eclipse positive.jpg" />
<im ns="6" title="Image:Albert Einstein Head.jpg" />
<im ns="6" title="Image:Albert Einstein as a child.jpg" />
...
<im ns="6" title="Image:Wikisource-logo.svg" />
<im ns="6" title="Image:Wikiversity-logo-Snorky.svg" />
<im ns="6" title="Image:Wiktionary-logo-en.png" />
</images>
</page>
</pages>
</query>
</api>
http://en.wikipedia.org/w/api.php?action=query&titles=Image:Albert%20Einstein%20Head.jpg|Image:Albert%20Einstein%20as%20a%20child.jpg|Image:Albert%20Einstein%20german.ogg|Image:Albert%20Einstein%20photo%201921.jpg|Image:Albert%20Einstein%20signature.png|Image:Max-Planck-und-Albert-Einstein.jpg|Image:Niels%20Bohr%20Albert%20Einstein%20by%20Ehrenfest.jpg|Image:Max-Planck-und-Albert-Einstein.jpg|Image:Niels%20Bohr%20Albert%20Einstein%20by%20Ehrenfest.jpg&prop=imageinfo&iiprop=size&format=xml
<?xml version="1.0" encoding="utf-8"?>
<api>
<query>
<pages>
<page ns="6" title="Image:Albert Einstein Head.jpg" missing="" imagerepository="shared">
<imageinfo>
<ii size="462857" width="924" height="1203" />
</imageinfo>
</page>
...
<page pageid="5769703" ns="6" title="Image:Albert Einstein german.ogg" imagerepository="local">
<imageinfo>
<ii size="18305" width="0" height="0" />
</imageinfo>
</page>
</pages>
</query>
</api>
http://en.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Visitor%20attractions%20in%20London&cmlimit=500&format=xml
<?xml version="1.0" encoding="utf-8"?>
<api>
<query>
<categorymembers>
<cm pageid="413532" ns="0" title="Albertopolis" />
<cm pageid="533127" ns="0" title="London Astoria" />
<cm pageid="2730202" ns="0" title="Avenue of Stars, London" />
...
<cm pageid="4842720" ns="0" title="White Tower (Tower of London)" />
<cm pageid="3542585" ns="14" title="Category:World Heritage Sites in London" />
<cm pageid="11378726" ns="0" title="York Hall" />
</categorymembers>
</query>
</api>
Hay cosas no obstante que, hasta donde he visto, no se pueden hacer con el API. Por ejemplo, es posible obtener los artículos enlazados desde uno dado pero no extraer el texto empleado en los enlaces (cosa que era importante para nosotros).


Back Next