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.

Foi útil?

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;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top