2009-06-22 6 views
6

Ich analysiere Wikipedia Infoboxen und ich habe festgestellt, dass einige Infoboxen Bildfelder haben - diese Felder enthalten Namen von Bilddateien, die irgendwo in Wikipedia versteckt sind. Sie enthalten jedoch nur den Namen der Datei im Gegensatz zum tatsächlichen Link.Wie bekomme ich einen Link zu einem Bild auf Wikipedia aus der Infobox?

Ich habe die Links der Bilder auf realen Live-Infoboxen überprüft und die Links scheinen nicht aus einer Quelle zu stammen, aber die Quellen variieren. Wie kann ich auf ein Bild auf Wikipedia verlinken, wenn ich bedenke, dass ich nur den Namen des Bildes aus einem Infobox-Eintrag habe.

+1

hast du jemals die Antwort auf diese Frage bekommen? – rockit

Antwort

1

Haben Sie versucht http://en.wikipedia.org/wiki/File:filename.jpg? Auch wenn sich die Dateien auf Wikimedia Commons befinden, sollte die obige URL dennoch funktionieren.

Bearbeiten: Versuchen Sie, das Bild zu hotlink? Wenn dies der Fall ist, verbietet Wikipedia das Hotlinking. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

+0

Whoa! Ich wusste nicht, dass es verboten ist, auf Wikipedia zu verlinken - danke, dass du mich darüber informiert hast. Eigentlich möchte ich die Fotos zeigen, die in den Infoboxen, die ich exportiert habe, referenziert sind. Ich hätte gerne einen Weg, diese Bilder irgendwie programmatisch herunterzuladen - wie würde ich es von Wikipedia bekommen? – Ali

+0

Bedenke, dass ich ungefähr ein paar tausend Infoboxen habe und jede Infobox ein bis drei Bilder referenziert. – Ali

+6

@Ali: Die Seite sagt jetzt, dass Hotlinking erlaubt ist – Casebash

12

Nach What are the strangely named components in Wikipedia file paths müssen Sie MD5 ausführen, um URL zu finden. Jetzt wikipedia ermöglicht hotlinking, so:

Wenn Sie utf-8 codiert $name, müssen Sie folgendes tun:

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

Das gleiche gilt für die Thumbnails verwendet werden.

+0

Danke, das funktioniert gut. Ich habe deine Antwort auf JS übersetzt. –

+0

@Yuri Baburov http://upload.wikimedia.org/wikipedia/commons/ ist nicht einige Zeit dieser Link https://upload.wikimedia.org/wikipedia/de/7/75/Cruciblecover.jpg irgendeine Idee wie zu beheben dynamische URL erhalten? –

0

bemerkte ich, dass der URL-Präfix sein sollte:

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; 
2

Hier ist eine JavaScript-Implementierung:

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

die Ordner Und auch auf den wiederholten Namen der Datei mit einer Größe als Präfix angegeben enthalten muss einer funktionierenden PHP-Antwort (Credits zu 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; 

Beachten Sie, dass Sie müssen schließen Sie externe md5() Funktion ein (https://github.com/blueimp/JavaScript-MD5); Es ist nicht in JS nativ.

0

Wenn Sie nur Dateien auf Wikimedia Commons verknüpfen möchten, gibt es einen einfacheren Weg - Sie können die FilePath special page verwenden. Zum Beispiel, wenn Sie die Datei „Mosaic_of_the_Arctic.jpg“ hotlink möchten, können Sie verwenden:

https://commons.wikimedia.org/wiki/Special:FilePath/Mosaic_of_the_Arctic.jpg 

Es arbeitet mit dem <img> zu Tag.

Verwandte Themen