Wie kann ich Link zu einem Bild auf wikipedia vom infobox bekommen?
-
06-07-2019 - |
Frage
Ich bin Parsen wikipedia Infoboxen und ich bemerkte, dass einige Infobox Bildfelder haben - diese Felder halten Namen von Bilddateien auf wikipedia irgendwo gebunkert. Allerdings enthalten sie nur den Namen der Datei, wie im Gegensatz zu dem eigentlichen Link ist.
Ich habe die Links der Bilder auf echte Live-Infoboxen und die Links scheinen nicht von einer Quelle zu sein, aber die Quellen variieren. Wie kann ich ein Bild auf wikipedia Hyperlink bedenkt, dass ich nur den Namen des Bildes von einem infobox Eintrag haben.
Lösung
Haben Sie http://en.wikipedia.org/wiki/File:filename.jpg
versucht? Auch wenn die Dateien auf Wikimedia Commons befinden, sollte die obige URL immer noch funktionieren.
Edit: Versuchen Sie, um das Bild zu hotlink? Wenn ja, verbietet Wikipedia hotlinking. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking
Aktualisieren 10-Jan-2019: Hotlinking ist jetzt erlaubt :
Hotlinking oder InstantCommons : Es ist möglich, Dateien zu verwenden, um direkt auf Commons innerhalb einer anderen Website, indem ein MediaWiki Wiki Einrichtung mit InstantCommons, ...
Andere Tipps
Nach Was die seltsam genannten Komponenten in Wikipedia Dateipfade sind Sie müssen md5 laufen uRL zu erfahren. Jetzt wikipedia erlaubt hotlinking, so:
Wenn Sie utf-8 kodierten $name
haben, 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.
Hier ist eine JavaScript-Implementierung einer Arbeits PHP Antwort (Kredite an 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 externe md5()
Funktion enthalten muss ( https://github.com/blueimp/JavaScript-MD5 ); es ist nicht heimisch JS.
Es gibt jetzt einen einfacheren Weg, um die Dateien auf Wikipedia über die Special: FilePath Seite. Wenn Sie also die Datei Example.jpg auf Englisch Wikipedia verlinkt werden möchten, können Sie https://en.wikipedia.org/wiki/Special:FilePath/Example.jpg
verwenden.
ähnliche Links sollten für andere Wikimedia Foundation Sites arbeiten (z. B.. Wikimedia Commons).
Reusing_content_outside_Wikimedia Details und Empfehlungen hotlinking in Bezug auf Wikimedia Commons finden a>.bemerkte ich, dass der URL-Präfix sollte sein:
http://upload.wikimedia.org/wikipedia/en/thumb/
Darüber hinaus ist der Ordner muss den wiederholten den Namen der Datei enthält, die mit einer Größe als Präfix angegeben:
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;