Como faço para obter link para uma imagem na wikipedia da infobox?
-
06-07-2019 - |
Pergunta
Eu sou analisar infoboxes wikipedia e notei que algumas infoboxes têm campos de imagem - estes campos segurar nomes de arquivos de imagem escondidos em algum lugar wikipedia. No entanto, eles contêm apenas o nome do arquivo como está em oposição à ligação efectiva.
Eu verifiquei os links das imagens no infoboxes vivos reais e os links não parecem ser de uma fonte, mas as fontes variam. Como posso hiperlink para uma imagem na wikipedia considerando eu só tenho o nome da imagem de uma entrada infobox.
Solução
Você já tentou http://en.wikipedia.org/wiki/File:filename.jpg
? Mesmo que os arquivos estão localizados no Wikimedia Commons, o acima URL deve ainda trabalho.
Edit: Você está tentando hotlink a imagem? Se assim for, Wikipedia proíbe hotlinking. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking
Update 10-Jan-2019: Hotlinking é agora permitida :
Hotlinking ou InstantCommons : É possível usar os arquivos diretamente no Commons no outro site, através da criação de um wiki MediaWiki com InstantCommons, ...
Outras dicas
De acordo com a Quais são os componentes nome estranho em caminhos de arquivo Wikipédia , você necessidade de md5 prazo para descobrir url. Agora wikipedia permite hotlinking, assim:
Se você tem utf-8 $name
codificado, você precisa fazer o seguinte:
$filename = replace($name, ' ', '_');
$digest = md5($filename);
$folder = $digest[0] . '/' . $digest[0] . $digest[1] . '/' . urlencode($filename);
$url = 'http://upload.wikimedia.org/wikipedia/commons/' . $folder;
O mesmo pode ser usado para as miniaturas.
Aqui está uma implementação JavaScript de uma resposta PHP trabalhando (créditos para 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;
Note que você deve incluir a função md5()
externo ( https://github.com/blueimp/JavaScript-MD5 ); não é nativa da JS.
Existe agora uma maneira mais simples de hotlink os arquivos em Wikipedia usando a especial: FilePath página. Portanto, se você deseja vincular o Exemplo.jpg arquivo no Inglês Wikipedia, você pode usar https://en.wikipedia.org/wiki/Special:FilePath/Example.jpg
.
ligações semelhantes devem trabalhar para outros sites da Wikimedia Foundation (e. G. Wikimedia Commons).
Detalhes e recomendações sobre hotlinking pode ser encontrada no Wikimedia do Commons: Reusing_content_outside_Wikimedia .
notei que o prefixo de URL deve ser:
http://upload.wikimedia.org/wikipedia/en/thumb/
Além disso, a pasta deve conter o nome repetido do arquivo com um tamanho especificado como prefixo:
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;