API:Backlinks/ru

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page API:Backlinks and the translation is 96% complete.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎polski • ‎русский • ‎العربية • ‎中文 • ‎日本語
Версия 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-запрос

Перечислить обратные ссылки (backlinks), на страницу философии (philosophy).

Ответ

{
    "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 Некорректный параметр continue. Вы должны передать значение, возвращённое предыдущим запросом.

См. также

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