否则我必须在页面内容上querySelector
查找是否存在某种挂锁,并通过尝试和错误检查该图标的唯一(ID或类)是唯一的。
要查找的其他来源是此信息是通过将$action=info
添加到网址参数来进入信息页面。但是另一个问题是保护状态是用那种特定的维基语言编写的。
答案 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
是唯一可以移动和编辑页面的人。