Jump to content

API:Allpages

From mediawiki.org
This page is a translated version of the page API:Allpages and the translation is 100% complete.
Версия MediaWiki:
1.8

GET-запрос на перечисление всех страниц, соответствующих определенным критериям, в пределах заданного Пространство имён .

Этот модуль можно использовать как генератор .

Документация по API

list=allpages (ap)

(main | query | allpages)
  • This module requires read rights.
  • This module can be used as a generator.
  • Source: MediaWiki
  • License: GPL-2.0-or-later

Enumerate all pages sequentially in a given namespace.

Specific parameters:
Other general parameters are available.
apfrom

The page title to start enumerating from.

apcontinue

When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.

apto

The page title to stop enumerating at.

apprefix

Search for all page titles that begin with this value.

apnamespace

The namespace to enumerate.

One of the following values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 90, 91, 92, 93, 100, 101, 102, 103, 104, 105, 106, 107, 486, 487, 710, 711, 828, 829, 1198, 1199, 2600, 5500, 5501
Default: 0
apfilterredir

Which pages to list.

Note: Due to miser mode, using this may result in fewer than aplimit results returned before continuing; in extreme cases, zero results may be returned.

One of the following values: all, nonredirects, redirects
Default: all
apfilterlanglinks

Filter based on whether a page has langlinks. Note that this may not consider langlinks added by extensions.

One of the following values: all, withlanglinks, withoutlanglinks
Default: all
apminsize

Limit to pages with at least this many bytes.

Type: integer
apmaxsize

Limit to pages with at most this many bytes.

Type: integer
apprtype

Limit to protected pages only.

Values (separate with | or alternative): edit, move, upload
apprlevel

Filter protections based on protection level (must be used with apprtype= parameter).

Values (separate with | or alternative): Can be empty, or autoconfirmed, sysop
apprfiltercascade

Filter protections based on cascadingness (ignored when apprtype isn't set).

One of the following values: all, cascading, noncascading
Default: all
apprexpiry

Which protection expiry to filter the page on:

indefinite
Get only pages with indefinite protection expiry.
definite
Get only pages with a definite (specific) protection expiry.
all
Get pages with any protections expiry.
One of the following values: all, definite, indefinite
Default: all
aplimit

How many total pages to return.

Type: integer or max
The value must be between 1 and 500.
Default: 10
apdir

The direction in which to list.

One of the following values: ascending, descending
Default: ascending


Пример

GET-запрос

Получить все страницы, заголовок которых содержит текст "Jungle", полностью или частично.

Ответ

Элементы в результатах перечислены в алфавитном порядке, по заголовку страницы.
{
    "batchcomplete": "",
    "continue": {
        "apcontinue": "Jungle_(Bakufu_Slump_album)",
        "continue": "-||"
    },
    "query": {
        "allpages": [
            {
                "pageid": 341265,
                "ns": 0,
                "title": "Jungle"
            },
            {
                "pageid": 56461312,
                "ns": 0,
                "title": "Jungle-runner"
            },
            {
                "pageid": 18698572,
                "ns": 0,
                "title": "Jungle/Drum n bass"
            },
            {
                "pageid": 1487899,
                "ns": 0,
                "title": "Jungle2jungle"
            },
            {
                "pageid": 30391179,
                "ns": 0,
                "title": "JunglePup"
            }
            ...
        ]
    }
}

Пример кода

Python

#!/usr/bin/python3

"""
    get_allpages.py

    MediaWiki API Demos
    Demo of `Allpages` module: Get all pages whose title contains the text
    "Jungle," in whole or part.

    MIT License
"""

import requests

S = requests.Session()

URL = "https://en.wikipedia.org/w/api.php"

PARAMS = {
    "action": "query",
    "format": "json",
    "list": "allpages",
    "apfrom": "jungle",
}

R = S.get(url=URL, params=PARAMS)
DATA = R.json()

PAGES = DATA["query"]["allpages"]

for page in PAGES:
    print(page["title"])

PHP

<?php
/*
    get_allpages.php

    MediaWiki API Demos
    Demo of `Allpages` module: Get all pages whose title contains the text "Jungle," in whole or part.

    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "format" => "json",
    "list" => "allpages",
    "apfrom" => "jungle"
];

$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"]["allpages"] as $k => $v ) {
    echo( $v["title"] . "\n" );
}

JavaScript

/*
    get_allpages.js

    MediaWiki API Demos
    Demo of `Allpages` module: Get all pages whose title contains the text "Jungle," in whole or part.

    MIT License
*/

let url = "https://en.wikipedia.org/w/api.php";

const params = {
    action: "query",
    format: "json",
    list: "allpages",
    apfrom: "jungle"
}

url += "?origin=*"

Object.keys(params).forEach((key) => {
    url += `&${key}=${params[key]}`
})

fetch(url)
    .then((response) => {
        return response.json()
    })
    .then((response) => {
        const pages = response.query.allpages

        for (let p in pages) {
            console.log(pages[p].title)
        }
    })
    .catch((error) => {
        console.log(error)
    })

MediaWiki JS

/*
	get_allpages.js

	MediaWiki API Demos
	Demo of `Allpages` module: Get all pages whose title contains the text "Jungle,"
	in whole or part.

	MIT License
*/

var params = {
		action: 'query',
		format: 'json',
		list: 'allpages',
		apfrom: 'jungle'
	},
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	var pages = data.query.allpages,
		p;
	for ( p in pages ) {
		console.log( pages[ p ].title );
	}
} );

Возможные ошибки

Код Информация
invalidparammix Параметр prlevel может быть использован только одновременно с prtype.

См. также

  • Chris G's botclasses/AllPagesBot.php — бот, который получает все файлы в вики, используя этот API
  • API:Categorymembers — перечисляет все страницы в категории
  • API:Categories — перечисляет все категории, связанные с определенной страницей, что может помочь в поиске похожих страниц
  • API:Allcategories — перечисляет все категории, соответствующие определенным критериям
  • API:Allimages — перечисляет все изображения, имена файлов которых соответствуют определённым критериям
  • API:Allusers — перечисляет всех пользователей в алфавитном порядке