如何获取链接到的图像从信息框维基百科?(How do I get link to an image

2019-07-29 02:13发布

我解析维基百科InfoBoxes到我注意到一些InfoBoxes到有影像领域 - 这些领域保持藏匿在某处维基百科的图像文件的名称。 不过,他们只包含文件的名称是相对于实际的链接。

我查了活生生的InfoBoxes到和链接的图像的链接似乎没有从一个源,但来源不同而不同。 我怎么能超到的图像在维基百科上考虑我只有从信息框条目中的图像的名称。

Answer 1:

您是否尝试过http://en.wikipedia.org/wiki/File:filename.jpg ? 即使文件位于维基共享资源,上面的网址仍然应该工作。

编辑:你们是不是要热链接的形象呢? 如果是这样,维基百科禁止盗链。 http://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia#Hotlinking

更新10-JAN-2019:盗链是现在允许的 :

盗链或InstantCommons:有可能在下议院另一个网站中直接使用的文件,通过设置链接到MediaWiki维基与InstantCommons,...



Answer 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:

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

$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.



Answer 3:

这里是一个JavaScript实现工作PHP的答案(学分尤里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;

请注意,您必须包括外部md5()函数( https://github.com/blueimp/JavaScript-MD5 ); 这是不是本机JS。



Answer 4:

现在有一个更简单的使用,以热链接在维基百科上的文件的方式特别:文件路径页。 因此,如果你想链接英文维基百科的文件Example.jpg,你可以使用https://en.wikipedia.org/wiki/Special:FilePath/Example.jpg

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

详细信息和有关盗链建议可以在维基媒体的找到共享:Reusing_content_outside_Wikimedia 。



Answer 5:

我注意到,网址的前缀应为:

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;


文章来源: How do I get link to an image on wikipedia from the infobox?