是否有维基百科 api 调用可以检索文章的限制状态?
is there a wikipedia api call that can retrieve restriction status of the article?
否则我必须在页面内容上执行 querySelector
以查找是否有某种挂锁,并通过尝试和错误检查该图标的独特之处(id 或 class)。
要查找的其他来源是此信息是通过将 $action=info
添加到 url 参数进入信息页面。但是另一个问题是保护状态是用特定的 wiki 语言编写的。
使用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
用户可以编辑它。
如果您在另一个 wiki 上进行类似查询,比如法语维基百科: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
可以移动 和 编辑页面。
否则我必须在页面内容上执行 querySelector
以查找是否有某种挂锁,并通过尝试和错误检查该图标的独特之处(id 或 class)。
要查找的其他来源是此信息是通过将 $action=info
添加到 url 参数进入信息页面。但是另一个问题是保护状态是用特定的 wiki 语言编写的。
使用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
用户可以编辑它。
如果您在另一个 wiki 上进行类似查询,比如法语维基百科: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
可以移动 和 编辑页面。