如何从信息框中获取维基百科上的图像链接?

Ali*_*Ali 5 php wikipedia imagesource wikimedia-commons

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

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

Yur*_*rov 12

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

如果您使用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;
Run Code Online (Sandbox Code Playgroud)

同样可以用于缩略图.

  • 请注意,此答案中的方法现在已经过时且过于复杂,因为维基媒体网站目前为热链接提供了更加友好的 URL 方案。例如,您可以使用“https://en.wikipedia.org/wiki/Special:FilePath/Example.jpg”来热链接图像“Example.jpg”。请参阅下面的答案了解更多详细信息。 (2认同)

jim*_*myi 0

你有没有尝试过http://en.wikipedia.org/wiki/File:filename.jpg?即使文件位于 Wikimedia Commons 上,上述 URL 仍应有效。

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

2019 年 1 月 10 日更新:现在允许盗链:

热链接或 InstantCommons:通过使用 InstantCommons 设置 MediaWiki wiki,可以直接在另一个网站内的 Commons 上使用文件,...