API:Links

From mediawiki.org
This page is a translated version of the page API:Links and the translation is 100% complete.
MediaWiki sürümü:
1.11

Sağlanan sayfalardaki tüm bağlantıları bulmak için GET isteği.

Bu modül jeneratör olarak kullanılabilir.

API belgesi


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

Returns all links from the given pages.

Specific parameters:
Other general parameters are available.
plnamespace

Show links in these namespaces only.

Values (separate with | or alternative): -1, -2, 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
To specify all values, use *.
pllimit

How many links to return.

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

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

pltitles

Only list links to these titles. Useful for checking whether a certain page links to a certain title.

Separate values with | or alternative.
Maximum number of values is 50 (500 for clients that are allowed higher limits).
pldir

The direction in which to list.

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

Örnekler

Örnek 1: Bir sayfadaki tüm bağlantıları getirin

GET isteği

İngilizce Vikipedi'nin w:Albert Einstein sayfasındaki bağlantıların bir listesini alın


Yanıt

{
    "query": {
        "pages": [
            {
                "pageid": 736,
                "ns": 0,
                "title": "Albert Einstein",
                "links": [
                    {
                        "ns": 0,
                        "title": "2dF Galaxy Redshift Survey"
                    },
                    {
                        "ns": 0,
                        "title": "A priori and a posteriori"
                    },
                    {
                        "ns": 0,
                        "title": "Aage Bohr"
                    },
                    ...
                ]
            }
        ]
    }
}

Örnek kod

Python

#!/usr/bin/python3

"""
    get_links.py

    MediaWiki API Demos
    Demo of `Links` module: Get all links on the given page(s)

    MIT License
"""

import requests

S = requests.Session()

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

PARAMS = {
    "action": "query",
    "format": "json",
    "titles": "Albert Einstein",
    "prop": "links"
}

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

PAGES = DATA["query"]["pages"]

for k, v in PAGES.items():
    for l in v["links"]:
        print(l["title"])

PHP

<?php
/*
    get_links.php

    MediaWiki API Demos
    Demo of `Links` module: Get all links on the given page(s)

    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "format" => "json",
    "titles" => "Albert Einstein",
    "prop" => "links"
];

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

JavaScript

/*
    get_links.js

    MediaWiki API Demos
    Demo of `Links` module: Get all links on the given page(s)

    MIT License
*/

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

var params = {
    action: "query",
    format: "json",
    titles: "Albert Einstein",
    prop: "links"
};

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

MediaWiki JS

/*
	get_links.js

	MediaWiki API Demos
	Demo of `Links` module: Get all links on the given page(s)

	MIT License
*/

var params = {
		action: 'query',
		format: 'json',
		titles: 'Albert Einstein',
		prop: 'links'
	},
	api = new mw.Api();

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

Örnek 2: Eksik bağlantıları getirin

Wikipedia:Most-wanted articles üzerinde eksik veya kırmızı bağlantılar getirme isteği alın. Bunu yapmak için iki adım:

  • Sağlanan sayfaya katıştırılmış tüm bağlantıları döndürmek için Eylem API'sinden bir GET isteği gönderin.
  • Daha fazla ayıklamadan, eksik olan ve henüz İngilizce Vikipedi'de bulunmayan bağlantıları edinin.
generator=links sorgu modülünün alt modülü links, sayfaya gömülü bir dizi bağlantı almak için generator modülü olarak kullanılır.

GET isteği


Yanıt

Yanıt
{
  "batchcomplete": "", 
  "continue": {
    "continue": "gplcontinue||", 
    "gplcontinue": "297177|0|1965_in_sumo"
  }, 
  "query": {
    "pages": {
      "-1": {
        "missing": "", 
        "ns": 0, 
        "title": "(viii)"
      }, 
      "-10": {
        "missing": "", 
        "ns": 0, 
        "title": "1954 in sumo"
      }
      ...
    }
  }
}

Örnek kod

get_red_links.py


Python

#!/usr/bin/python3

"""
    get_red_links.py

    MediaWiki API Demos
    Demo of `Links` module to identify red or missing links on a page.

    MIT License
"""

import requests

S = requests.Session()

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

PARAMS = {
    "action": "query",
    "titles": "Wikipedia:Most-wanted_articles",
    "gpllimit": "20",
    "format": "json",
    "generator": "links"
}

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

PAGES = DATA['query']['pages']

for page in PAGES.values():
    if 'missing' in page:
        print(page['title'])

PHP

<?php
/*
    get_red_links.php

    MediaWiki API Demos
    Demo of `Links` module to identify red or missing links on a page.

    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "generator" => "links",
    "titles" => "Wikipedia:Most-wanted_articles",
    "gpllimit" => "20",
    "format" => "json"
];

$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"]["pages"] as $page ){
    if( array_key_exists("missing",$page ) ){
        echo( $page["title"] . "\n" );
    }
}

JavaScript

/*
    get_red_links.js

    MediaWiki API Demos
    Demo of `Links` module to identify red or missing links on a page.

    MIT License
*/

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

var params = {
    action: "query",
    generator: "links",
    titles: "Wikipedia:Most-wanted_articles",
    gpllimit: "20",
    format: "json"
};

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 pages = response.query.pages;
        for (var p in pages) {
            if(pages[p].hasOwnProperty("missing")){
                console.log(pages[p].title);
            }
        }
    })
    .catch(function(error){console.log(error);});

MediaWiki JS

/*
	get_red_links.js

	MediaWiki API Demos
	Demo of `Links` module to identify red or missing links on a page.

	MIT License
*/

var params = {
		action: 'query',
		generator: 'links',
		titles: 'Wikipedia:Most-wanted_articles',
		gpllimit: '20',
		format: 'json'
	},
	api = new mw.Api();

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

Parametre geçmişi

  • v1.19: pldir tanıtıldı
  • v1.17: pltitles tanıtıldı
  • v1.13: pllimit, plcontinue tanıtıldı

Ayrıca bakınız

  • API:Linkshere - Belirli bir sayfaya bağlantı içeren sayfaları bulan API:Özellikler alt modülü.
  • API:Backlinks - Belirli bir sayfaya bağlantı veren sayfaların listesini alan API:Listeler alt modül.
  • API:Iwlinks - Belirli bir sayfada vikiarası bağlantıları bulun (ör. meta sayfalar, özel sayfalar).
  • API:Iwbacklinks - Belirli bir vikiarası bağlantısından bağlanan sayfaların bir listesini alın.
  • API:Extlinks - Belirli bir sayfadaki tüm harici bağlantıları bulun.
  • API:Exturlusage - Harici bir URL'ye bağlantı veren tüm sayfaları edinin.
  • API:Langlinks - Verilen sayfadan dil bağlantılarının bir listesini alın. Dil bağlantıları çevirileri temsil eder.
  • API:Langbacklinks - Belirli bir dil bağlantısı içeren sayfaların bir listesini alın.