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 - описывает, как настроить API на серверной части.