查询 MediaWiki API 页面上的链接不会 return 所有链接
Querying MediaWiki API for links on a page does not return all links
我正在寻找此 WikiQuote 页面上的链接。我想看看 'Fundamental' 类别下有哪些子类别。它们在页面上显示为链接,因此向 API 询问链接似乎很自然。我只取回 "Category schemes" 和 "Main page" 链接,这些链接存在于介绍中。我在做什么wrong/what我是不是理解错了?
代码
function httpGetAsync(theUrl, callback){
xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200){
callback(xmlHttp.responseText);
}
}
xmlHttp.open("GET", theUrl, true); // true for asynchronous
xmlHttp.send('null');
}
function callback(json_response){
stuff = json_response;
console.log(JSON.stringify(JSON.parse(json_response), null, 2));
}
httpGetAsync('http://en.wikiquote.org/w/api.php?action=query&prop=links&titles=Category:Fundamental&origin=*&format=json', callback);
输出
{
"batchcomplete": "",
"query": {
"pages": {
"4480": {
"pageid": 4480,
"ns": 14,
"title": "Category:Fundamental",
"links": [
{
"ns": 4,
"title": "Wikiquote:Category schemes"
},
{
"ns": 14,
"title": "Category:Main page"
}
]
}
}
}
}
解决方案
httpGetAsync('https://en.wikiquote.org/w/api.php?&action=query&list=categorymembers&cmtitle=Category:Fundamental&cmtype=subcat&origin=*&format=json', callback);
API documentation for the query used in the solution.
说明
这是在基本类别页面上请求前 10 个(未指定 cmlimit,因此默认为 10 个返回的项目)子类别。
该解决方案通过返回我想要的子类别来解决问题,而不是要求链接。我不确定为什么它们没有显示为链接,但它确实让我得到了我想要的最终结果。
学分
感谢 FreeCodeCamp 论坛上的 randelldawson 提供此解决方案。
我正在寻找此 WikiQuote 页面上的链接。我想看看 'Fundamental' 类别下有哪些子类别。它们在页面上显示为链接,因此向 API 询问链接似乎很自然。我只取回 "Category schemes" 和 "Main page" 链接,这些链接存在于介绍中。我在做什么wrong/what我是不是理解错了?
代码
function httpGetAsync(theUrl, callback){
xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200){
callback(xmlHttp.responseText);
}
}
xmlHttp.open("GET", theUrl, true); // true for asynchronous
xmlHttp.send('null');
}
function callback(json_response){
stuff = json_response;
console.log(JSON.stringify(JSON.parse(json_response), null, 2));
}
httpGetAsync('http://en.wikiquote.org/w/api.php?action=query&prop=links&titles=Category:Fundamental&origin=*&format=json', callback);
输出
{
"batchcomplete": "",
"query": {
"pages": {
"4480": {
"pageid": 4480,
"ns": 14,
"title": "Category:Fundamental",
"links": [
{
"ns": 4,
"title": "Wikiquote:Category schemes"
},
{
"ns": 14,
"title": "Category:Main page"
}
]
}
}
}
}
解决方案
httpGetAsync('https://en.wikiquote.org/w/api.php?&action=query&list=categorymembers&cmtitle=Category:Fundamental&cmtype=subcat&origin=*&format=json', callback);
API documentation for the query used in the solution.
说明
这是在基本类别页面上请求前 10 个(未指定 cmlimit,因此默认为 10 个返回的项目)子类别。
该解决方案通过返回我想要的子类别来解决问题,而不是要求链接。我不确定为什么它们没有显示为链接,但它确实让我得到了我想要的最终结果。
学分
感谢 FreeCodeCamp 论坛上的 randelldawson 提供此解决方案。