是否有维基百科api调用可以检索文章的限制状态?

时间:2015-10-03 14:18:51

标签: wikipedia-api

否则我必须在页面内容上querySelector查找是否存在某种挂锁,并通过尝试和错误检查该图标的唯一(ID或类)是唯一的。

要查找的其他来源是此信息是通过将$action=info添加到网址参数来进入信息页面。但是另一个问题是保护状态是用那种特定的维基语言编写的。

1 个答案:

答案 0 :(得分:1)

使用API​​是正确的方法,但您需要使用action=query。挂锁图标在wiki上不一致,大多数wiki可能都没有。

如果您为API查询使用正确的参数,则应该获得您正在寻找的结果。

英语维基百科的示例: https://en.wikipedia.org/w/api.php?action=query&prop=info&format=json&inprop=protection&titles=Elton%20John为您提供了以下结果:

{
    "batchcomplete": "",
    "query": {
        "pages": {
            "5052197": {
                "pageid": 5052197,
                "ns": 0,
                "title": "Elton John",
                "contentmodel": "wikitext",
                "pagelanguage": "en",
                "touched": "2015-10-02T03:49:24Z",
                "lastrevid": 683730854,
                "length": 115931,
                "protection": [
                    {
                        "type": "edit",
                        "level": "autoconfirmed",
                        "expiry": "infinity"
                    },
                    {
                        "type": "move",
                        "level": "sysop",
                        "expiry": "infinity"
                    }
                ],
                "restrictiontypes": [
                    "edit",
                    "move"
                ]
            }
        }
    }
}

此处protection数组告诉您,只有sysop可以移动该页面,并且只有autoconfirmed个用户可以对其进行编辑。

如果您在另一个维基上进行类似的查询,请说法语维基百科:https://fr.wikipedia.org/w/api.php?action=query&prop=info&format=json&inprop=protection&titles=Malia%20Obama,您会得到此回复(修剪):

"protection": [
    {
        "type": "edit",
        "level": "sysop",
        "expiry": "infinity"
    },
    {
        "type": "move",
        "level": "sysop",
        "expiry": "infinity"
    }
],
"restrictiontypes": [
    "edit",
    "move"
]

在这种情况下,sysop是唯一可以移动编辑页面的人。