Pregunta

Estoy analizando los cuadros de información de Wikipedia y noté que algunos cuadros de información tienen campos de imagen: estos campos contienen nombres de archivos de imagen escondidos en Wikipedia en algún lugar. Sin embargo, solo contienen el nombre del archivo como opuesto al enlace real.

Revisé los enlaces de las imágenes en cuadros de información reales en vivo y los enlaces no parecen ser de una sola fuente, pero las fuentes varían. ¿Cómo puedo hacer un hipervínculo a una imagen en wikipedia teniendo en cuenta que solo tengo el nombre de la imagen de una entrada del cuadro de información?

¿Fue útil?

Solución

¿Has probado http://en.wikipedia.org/wiki/File:filename.jpg ? Incluso si los archivos se encuentran en Wikimedia Commons, la URL anterior aún debería funcionar.

Editar: ¿Está intentando vincular la imagen? Si es así, Wikipedia prohíbe los enlaces directos. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

Actualización 10-ene-2019: Hotlinking es ahora permitido :

  

Hotlinking o InstantCommons : es posible usar archivos directamente en   Commons dentro de otro sitio web, configurando un wiki de MediaWiki con   InstantCommons, ...

Otros consejos

Según ¿Cuáles son los componentes con nombres extraños en las rutas de archivos de Wikipedia , usted necesita ejecutar md5 para encontrar la url. Ahora wikipedia permite hotlinking, así que:

Si ha codificado utf-8 $ name , debe hacer lo siguiente:

$filename = replace($name, ' ', '_');
$digest = md5($filename);
$folder = $digest[0] . '/' . $digest[0] . $digest[1] . '/' .  urlencode($filename);
$url = 'http://upload.wikimedia.org/wikipedia/commons/' . $folder;

Lo mismo se puede usar para las miniaturas.

Aquí hay una implementación de JavaScript de una respuesta PHP funcional (créditos a Yuri Baburov):

var name = "filename.jpg";
var filename = name.replace(/ /g, "_"); 
var digest = md5(filename);
var folder = digest[0] + '/' + digest[0] + digest[1] + '/' + encodeURIComponent(filename);
var url = 'http://upload.wikimedia.org/wikipedia/commons/' + folder;

Tenga en cuenta que debe incluir la función externa md5 () ( https: // github.com/blueimp/JavaScript-MD5 ); no es nativo de JS.

Noté que el prefijo de URL debería ser:

http://upload.wikimedia.org/wikipedia/en/thumb/

Además, la carpeta debe contener el nombre repetido del archivo con un tamaño especificado como prefijo:

http://upload.wikimedia.org/wikipedia/en/thumb/d/dd/Ruins-imperial-complex-milan-.jpg/220px-Ruins-imperial-complex-milan-.jpg

$filename = replace($name, ' ', '_');
$digest = md5($filename);
$urlencfile =  urlencode($filename)
$imgwidth = 220
$folder = $digest[0] . '/' . $digest[0] . $digest[1] . '/' . $urlencfile . '/' . $imgwidth . 'px-' . $urlencfile;
$url = 'http://upload.wikimedia.org/wikipedia/en/thumb/' . $folder;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top