检测维基百科文件URL

时间:2013-07-10 15:56:40

标签: url wikipedia wikipedia-api

在我们的网站上,当用户添加指向维基百科页面的链接时,我们会自动向其显示该页面的N个最大图像。然后我们嵌入了一个合适的维基百科拇指图像(不是全尺寸图像)。如果它们链接到File:页面,我们直接理解并使用引用的图像。

然而,维基百科的不同语言版本使用不同的“文件:”前缀。是否有另一种简单的方法来检测维基百科文件:页面?是否有所有语言的File:前缀的完整列表?到目前为止我找到了这些:

File:
Image:
Datei:
Bild:
ملف: or %D9%85%D9%84%D9%81:
Imagen:
Irudi:
Fichier:
Ficheiro:
Датотека: or %D0%94%D0%B0%D1%82%D0%BE%D1%82%D0%B5%D0%BA%D0%B0:
Fil:
Файл: or %D0%A4%D0%B0%D0%B9%D0%BB:
Immagine:
Податотека: or %D0%9F%D0%BE%D0%B4%D0%B0%D1%82%D0%BE%D1%82%D0%B5%D0%BA%D0%B0:
പ്രമാണം: or %E0%B4%AA%E0%B5%8D%E0%B4%B0%E0%B4%AE%E0%B4%BE%E0%B4%A3%E0%B4%82:
ファイル: or %E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:
Слика: or %D0%A1%D0%BB%D0%B8%D0%BA%D0%B0:
Датотека: or %D0%94%D0%B0%D1%82%D0%BE%D1%82%D0%B5%D0%BA%D0%B0:
దస్త్రం: or %E0%B0%A6%E0%B0%B8%E0%B1%8D%E0%B0%A4%E0%B1%8D%E0%B0%B0%E0%B0%82:
Файл: or %D0%A4%D0%B0%D0%B9%D0%BB:

1 个答案:

答案 0 :(得分:0)

您不应该尝试解析该URL。不同项目中的本地化命名空间名称不断变化,很难获得最新列表。在某些情况下,一个本地化名称在两个项目中引用两个不同的名称空间。

您应该能够通过查询其属性来告知链接的命名空间。

https://en.wikipedia.org/w/api.php?action=query&prop=info&format=json&titles=File%3AWiki.png

寻找ns属性。

{
    "query": {
        "pages": {
            "28680696": {
                "pageid": 28680696,
                "ns": 6,
                "title": "File:Wiki.png",
                "contentmodel": "wikitext",
                "pagelanguage": "en",
                "touched": "2013-07-18T14:04:38Z",
                "lastrevid": 560201242,
                "counter": "",
                "length": 786
            }
        }
    }
}