API:Зворотні посилання

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page API:Backlinks and the translation is 100% complete.
Версія MediaWiki:
1.9

Запит GET для переліку сторінок, які посилаються на певну сторінку.

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


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

Find all pages that link to the given page.

Parameters:
bltitle

Title to search. Cannot be used together with blpageid.

blpageid

Page ID to search. Cannot be used together with bltitle.

Type: integer
blcontinue

When more results are available, use this to continue.

blnamespace

The namespace to enumerate.

Values (separate with | or alternative): 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, 828, 829, 1198, 1199, 2300, 2301, 2302, 2303, 2600, 5500, 5501
To specify all values, use *.
bldir

The direction in which to list.

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

How to filter for redirects. If set to nonredirects when blredirect is enabled, this is only applied to the second level.

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

How many total pages to return. If blredirect is enabled, the limit applies to each level separately (which means up to 2 * bllimit results may be returned).

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

If linking page is a redirect, find all pages that link to that redirect as well. Maximum limit is halved.

Type: boolean (details)

Приклад

Запит GET

Перелік зворотних посилань на сторінку філософії.


Відповідь

{
    "batchcomplete": "",
    "continue": {
        "blcontinue": "1|987",
        "continue": "-||"
    },
    "query": {
        "backlinks": [
            {
                "pageid": 12,
                "ns": 0,
                "title": "Anarchism"
            },
            {
                "pageid": 128,
                "ns": 1,
                "title": "Talk:Atlas Shrugged"
            },
            {
                "pageid": 336,
                "ns": 0,
                "title": "Altruism"
            },
            ...
        ]
    }
}

Приклад коду

Python

#!/usr/bin/python3

"""
    get_backlinks.py

    MediaWiki API Demos
    Demo of `Backlinks` module: Get request to list pages which link to a certain page.

    MIT License
"""

import requests

S = requests.Session()

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

PARAMS = {
    "action": "query",
    "format": "json",
    "list": "backlinks",
    "bltitle": "philosophy"
}

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

BACKLINKS = DATA["query"]["backlinks"]

for b in BACKLINKS:
    print(b["title"])

PHP

<?php
/*
    get_backlinks.php

    MediaWiki API Demos
    Demo of `Backlinks` module: Get request to list pages which link to a certain page.

    MIT License
*/

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

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

JavaScript

/*
    get_backlinks.js

    MediaWiki API Demos
    Demo of `Backlinks` module: Get request to list pages which link to a certain page.

    MIT License
*/

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

var params = {
    action: "query",
    format: "json",
    list: "backlinks",
    bltitle: "philosophy"
};

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 backlinks = response.query.backlinks;
        for (var b in backlinks) {
            console.log(backlinks[b].title);
        }
    })
    .catch(function(error){console.log(error);});

MediaWiki JS

/*
	get_backlinks.js

	MediaWiki API Demos
	Demo of `Backlinks` module: Get request to list pages which link to a certain page.

	MIT License
*/

var params = {
		action: 'query',
		format: 'json',
		list: 'backlinks',
		bltitle: 'philosophy'
	},
	api = new mw.Api();

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

Перенаправлення

У наведеному вище прикладі повертаються лише прямі посилання на сторінку філософії. Якщо встановлено blredirect, відповідь включатиме всі сторінки, які мають зворотні посилання на перенаправлення для значення в bltitle.

Ці перенаправлені зворотні посилання розглядаються як окремі групи в ієрархії відповідей на один рівень нижче від самого перенаправлення.

Обмеження, встановлене в bllimit, застосовується окремо до кожного рівня відповіді, тому bllimit=25 повертає до 25 прямих зворотних посилань і до 25 зворотних посилань у кожному окремому перенаправлені.

Крім того, використання blcontinue, коли у відповіді було перенаправлення, поверне більше зворотних посилань другого рівня, перш ніж, нарешті, перейти до більш прямих зворотних посилань, коли всі зворотні посилання для перенаправлення будуть повернуті повністю.

Можливі помилки

Код Інформація
blbadcontinue Параметр продовження недійсний. Вам треба вказати початкове значення, отримане з попереднього запиту.

Див. також

  • API:Linkshere - знаходить усі сторінки, які посилаються на певну сторінку. Зауважте, що на відміну від API:Backlinks, який є модулем list , API:Linkshere є модулем prop . Перегляньте відповідні сторінки на API:Properties і API:Lists , щоб дізнатися, чим відрізняються ці два види модулів.
  • API:Transcludedin - модуль prop, який знаходить усі сторінки, які включають (тобто вбудовують інформацію з) наданих сторінок.
  • API:Embeddedin - модуль list, який перераховує зворотні посилання через трансклюзію, подібно до Special:Whatlinkshere.
  • API:Imageusage - перелічує сторінки, на яких використовуються вказані зображення.
  • API:Fileusage - перелічує сторінки, які використовують даний файл(и).