Как получить ссылку на изображение в Википедии из инфобокса?
-
06-07-2019 - |
Вопрос
Я анализирую информационные блоки Википедии и заметил, что у некоторых информационных полей есть поля изображения - эти поля содержат имена файлов изображений, спрятанных где-то в Википедии. Однако они просто содержат имя файла, а не фактическую ссылку. Р>
Я проверил ссылки на изображения в реальных живых инфобоксах, и ссылки, похоже, не из одного источника, но источники различаются. Как я могу гиперссылку на изображение в Википедии, учитывая, что у меня есть только имя изображения из записи инфобокса.
Решение
Вы пробовали http://en.wikipedia.org/wiki/File:filename.jpg
? Даже если файлы находятся на сайте Wikimedia Commons, приведенный выше URL все равно должен работать.
Изменить. Вы пытаетесь установить ссылку на изображение? Если это так, Википедия запрещает хотлинкинг. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia/aotlink< > р>
Обновление 10 января 2019 года. Горячая ссылка теперь теперь разрешено : Горячие ссылки или InstantCommons : файлы можно использовать непосредственно на
Общим на другом сайте, создав вики-сайт MediaWiki с
InstantCommons, ...
Другие советы
Согласно компонентам с странным названием в путях к файлам в Википедии , вы нужно запустить md5, чтобы узнать URL. Теперь в Википедии разрешена горячая ссылка, поэтому:
Если у вас есть $ name
в кодировке utf-8, вам нужно сделать следующее:
$filename = replace($name, ' ', '_');
$digest = md5($filename);
$folder = $digest[0] . '/' . $digest[0] . $digest[1] . '/' . urlencode($filename);
$url = 'http://upload.wikimedia.org/wikipedia/commons/' . $folder;
То же самое можно использовать для миниатюр.
Вот реализация JavaScript рабочего ответа PHP (благодарность Юрию Бабурову):
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;
Обратите внимание, что вы должны включить внешнюю функцию md5 ()
( https: // github.com/blueimp/JavaScript-MD5 ); это не является родным для JS.
В настоящее время существует более простой способ горячей ссылки на файлы в Википедии с помощью Special: FilePath а> страница. Следовательно, если вы хотите связать файл Example.jpg в английской Википедии, вы можете использовать Аналогичные ссылки должны работать на других сайтах Фонда Викимедиа (например, Wikimedia Commons). Р>
Подробную информацию и рекомендации по горячей ссылке можно найти в фондах Викимедиа https://en.wikipedia.org/wiki/Special:FilePath/Example.jpg
. Р>
Я заметил, что префикс URL должен быть следующим:
http://upload.wikimedia.org/wikipedia/en/thumb/
Кроме того, папка должна содержать повторяющееся имя файла с размером, указанным в качестве префикса:
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;