如何从信息框中获取*上的图像链接?

时间:2023-01-25 07:26:53

I'm parsing wikipedia infoboxes and I noticed that some infoboxes have image fields - these fields hold names of image files stashed on wikipedia somewhere. However they just contain the name of the file as is as opposed to the actual link.

我正在解析*的信息框,我注意到一些信息框有图像字段 - 这些字段包含*藏在某处的图像文件的名称。但是它们只是包含文件的名称而不是实际的链接。

I checked the links of the images on real live infoboxes and the links do not seem to be from one source but the sources vary. How can I hyperlink to an image on wikipedia considering I only have the name of the image from an infobox entry.

我检查了真实的实时信息框中图像的链接,链接似乎不是来自一个来源,但来源各不相同。我怎么能超链接到*上的图像,因为我只有信息框条目中的图像名称。

5 个解决方案

#1


Have you tried http://en.wikipedia.org/wiki/File:filename.jpg ? Even if the files are located on Wikimedia Commons, the above URL should still work.

你试过http://en.wikipedia.org/wiki/File:filename.jpg吗?即使文件位于维基共享资源上,上述网址仍然可以使用。

Edit: Are you trying to hotlink the image? If so, Wikipedia prohibits hotlinking. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

编辑:您是否尝试热链接图像?如果是这样,*禁止热链接。 http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

Update 10-Jan-2019: Hotlinking is now permitted:

更新于201年1月10日:现在允许热链接:

Hotlinking or InstantCommons: It is possible to use files directly on Commons within another website, by setting up a MediaWiki wiki with InstantCommons, ...

Hotlinking或InstantCommons:通过使用InstantCommons设置MediaWiki维基,可以在另一个网站的Commons上直接使用文件,......

#2


According to What are the strangely named components in Wikipedia file paths, you need to run md5 to find out url. Now wikipedia allows hotlinking, so:

根据*文件路径中奇怪命名的组件,您需要运行md5来查找URL。现在*允许热链接,所以:

If you have utf-8 encoded $name, you need to do the following:

如果您有utf-8编码的$ name,则需要执行以下操作:

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

The same can be used for thumbnails.

同样可以用于缩略图。

#3


Here is a JavaScript implementation of a working PHP answer (credits to Yuri Baburov):

这是一个有效的PHP答案的JavaScript实现(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 that you must include external md5() function (https://github.com/blueimp/JavaScript-MD5); it is not native to JS.

请注意,您必须包含外部md5()函数(https://github.com/blueimp/JavaScript-MD5);它不是JS的原生。

#4


There is now a simpler way to hotlink the files on Wikipedia using the Special:FilePath page. Hence, if you want to link the file Example.jpg on English Wikipedia, you can use https://en.wikipedia.org/wiki/Special:FilePath/Example.jpg.

现在有一种更简单的方法可以使用Special:FilePath页面来链接*上的文件。因此,如果您想在英语*上链接文件Example.jpg,您可以使用https://en.wikipedia.org/wiki/Special:FilePath/Example.jpg。

Similar links should work for other Wikimedia Foundation sites (e. g. Wikimedia Commons).

类似的链接应该适用于其他维基媒体基金会网站(例如维基媒体共享)。

Details and recommendations regarding hotlinking can be found on Wikimedia's Commons:Reusing_content_outside_Wikimedia.

有关热链接的详细信息和建议可以在Wikimedia的Commons:Reusing_content_outside_Wikimedia上找到。

#5


I noticed that the URL prefix should be:

我注意到URL前缀应该是:

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

Moreover the folder must contain the repeated name of the file with a size specified as prefix:

此外,该文件夹必须包含文件的重复名称,其大小指定为前缀:

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;

#1


Have you tried http://en.wikipedia.org/wiki/File:filename.jpg ? Even if the files are located on Wikimedia Commons, the above URL should still work.

你试过http://en.wikipedia.org/wiki/File:filename.jpg吗?即使文件位于维基共享资源上,上述网址仍然可以使用。

Edit: Are you trying to hotlink the image? If so, Wikipedia prohibits hotlinking. http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

编辑:您是否尝试热链接图像?如果是这样,*禁止热链接。 http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

Update 10-Jan-2019: Hotlinking is now permitted:

更新于201年1月10日:现在允许热链接:

Hotlinking or InstantCommons: It is possible to use files directly on Commons within another website, by setting up a MediaWiki wiki with InstantCommons, ...

Hotlinking或InstantCommons:通过使用InstantCommons设置MediaWiki维基,可以在另一个网站的Commons上直接使用文件,......

#2


According to What are the strangely named components in Wikipedia file paths, you need to run md5 to find out url. Now wikipedia allows hotlinking, so:

根据*文件路径中奇怪命名的组件,您需要运行md5来查找URL。现在*允许热链接,所以:

If you have utf-8 encoded $name, you need to do the following:

如果您有utf-8编码的$ name,则需要执行以下操作:

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

The same can be used for thumbnails.

同样可以用于缩略图。

#3


Here is a JavaScript implementation of a working PHP answer (credits to Yuri Baburov):

这是一个有效的PHP答案的JavaScript实现(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 that you must include external md5() function (https://github.com/blueimp/JavaScript-MD5); it is not native to JS.

请注意,您必须包含外部md5()函数(https://github.com/blueimp/JavaScript-MD5);它不是JS的原生。

#4


There is now a simpler way to hotlink the files on Wikipedia using the Special:FilePath page. Hence, if you want to link the file Example.jpg on English Wikipedia, you can use https://en.wikipedia.org/wiki/Special:FilePath/Example.jpg.

现在有一种更简单的方法可以使用Special:FilePath页面来链接*上的文件。因此,如果您想在英语*上链接文件Example.jpg,您可以使用https://en.wikipedia.org/wiki/Special:FilePath/Example.jpg。

Similar links should work for other Wikimedia Foundation sites (e. g. Wikimedia Commons).

类似的链接应该适用于其他维基媒体基金会网站(例如维基媒体共享)。

Details and recommendations regarding hotlinking can be found on Wikimedia's Commons:Reusing_content_outside_Wikimedia.

有关热链接的详细信息和建议可以在Wikimedia的Commons:Reusing_content_outside_Wikimedia上找到。

#5


I noticed that the URL prefix should be:

我注意到URL前缀应该是:

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

Moreover the folder must contain the repeated name of the file with a size specified as prefix:

此外,该文件夹必须包含文件的重复名称,其大小指定为前缀:

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;