API:Усі сторінки

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

Запит GET, щоб перерахувати всі сторінки, які відповідають певним критеріям, у межах даного Namespace .

Цей модуль можна використати як генератор .

Документація 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

Отримати всі сторінки, заголовок яких містить текст «Джунглі», повністю або частково.

Відповідь

Пункти в результатах перераховані в алфавітному порядку, за назвою сторінки.
{
    "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:Усі категорії — перелічує всі категорії, які відповідають певним критеріям
  • API:Allimages — перелічує всі зображення, імена файлів яких відповідають певним критеріям
  • API:Усі користувачі — список усіх користувачів в алфавітному порядку