¿Cómo obtengo un enlace a una imagen en wikipedia desde el cuadro de información?
-
06-07-2019 - |
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?
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.
Ahora hay una forma más sencilla de vincular los archivos en Wikipedia utilizando Especial: FilePath página. Por lo tanto, si desea vincular el archivo Example.jpg en Wikipedia en inglés, puede usar https://en.wikipedia.org/wiki/Special:FilePath/Example.jpg
.
Los enlaces similares deberían funcionar para otros sitios de la Fundación Wikimedia (por ejemplo, Wikimedia Commons).
Los detalles y recomendaciones sobre hotlinking se pueden encontrar en Commons: Reusing_content_outside_Wikimedia .
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;