API:Случайная страница
![]() | Эта страница является частью документации по API действий MediaWiki. |
Версия MediaWiki: | ≥ 1.12 |
Запрос GET для просмотра списка случайных страниц.
Этот модуль можно использовать как генератор .
Документация по API
list=random (rn)
Get a set of random pages. Pages are listed in a fixed sequence, only the starting point is random. This means that if, for example, Main Page is the first random page in the list, List of fictional monkeys will always be second, List of people on stamps of Vanuatu third, etc. Parameters:
Examples:
|
Пример
GET-запрос
Список 5 случайных страниц
Ответ
{
"batchcomplete": "",
"continue": {
"rncontinue": "0.559881820010|0.559881954661|47659388|0",
"continue": "-||"
},
"query": {
"random": [
{
"id": 32381675,
"ns": 0,
"title": "Mallabhum Institute of Technology"
},
{
"id": 25126452,
"ns": 3,
"title": "User talk:96.232.132.176"
},
{
"id": 1440028,
"ns": 0,
"title": "Hyundai Epsilon engine"
},
{
"id": 35446805,
"ns": 15,
"title": "Category talk:Ukrainian card games"
},
{
"id": 12613,
"ns": 0,
"title": "Grue"
}
]
}
}
Пример кода
Python
#!/usr/bin/python3
"""
get_random.py
MediaWiki API Demos
Demo of `Random` module: Get request to list 5 random pages.
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
PARAMS = {
"action": "query",
"format": "json",
"list": "random",
"rnlimit": "5"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
RANDOMS = DATA["query"]["random"]
for r in RANDOMS:
print(r["title"])
PHP
<?php
/*
get_random.php
MediaWiki API Demos
Demo of `Random` module: Get request to list 5 random pages.
MIT License
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
"action" => "query",
"format" => "json",
"list" => "random",
"rnlimit" => "5"
];
$url = $endPoint . "?" . http_build_query( $params );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );
$result = json_decode( $output, true );
foreach( $result["query"]["random"] as $k => $v ) {
echo( $v["title"] . "\n" );
}
JavaScript
/*
get_random.js
MediaWiki API Demos
Demo of `Random` module: Get request to list 5 random pages.
MIT License
*/
var url = "https://en.wikipedia.org/w/api.php";
var params = {
action: "query",
format: "json",
list: "random",
rnlimit: "5"
};
url = url + "?origin=*";
Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});
fetch(url)
.then(function(response){return response.json();})
.then(function(response) {
var randoms = response.query.random;
for (var r in randoms) {
console.log(randoms[r].title);
}
})
.catch(function(error){console.log(error);});
MediaWiki JS
/*
get_random.js
MediaWiki API Demos
Demo of `Random` module: Get request to list 5 random pages.
MIT License
*/
var params = {
action: 'query',
format: 'json',
list: 'random',
rnlimit: '5'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
var randoms = data.query.random,
r;
for ( r in randoms ) {
console.log( randoms[ r ].title );
}
} );
История параметров
- v1.26: Предыдущий лимит в 10/20 на
rnlimit
был увеличен до стандартных 500/5000. - v1.26: Устарели
rnredirect
- v1.26: Введены
rnfilterredir
- v1.14: Введены
rnredirect
Дополнительная информация
- В отличие от большинства модулей в Action API , количество возвращаемых страниц по умолчанию равно 1, а не 10.
- Страницы возвращаются в фиксированном порядке; только первая страница на самом деле случайна.
- Поведение по умолчанию - выбирать страницы со всего вики, включая страницы обсуждения, пользовательские страницы, и так далее. Если в ищете такую же функциональность как Special:Random, т. е. выбор случайных статьей, ограничьте
rnnamespace
на0
. - Если количество страниц меньше чем
rnlimit
, запрос просто вернёт все доступные страницы. Он не будет повторять страницы, чтобы наполнить ответ до ограничения.
См. также
- Manual:Random page - describes how to configure the API on the backend.