도움말:미디어위키 쿼리

Utolee90 (토론 | 기여)님의 2020년 9월 23일 (수) 22:21 판 (미디어위키 쿼리 문서 추가)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

미디어위키 API는 이용자들이 특히 CLI 환경에서 데이터를 쉽고 빠르게 다룰 수 있게 도와줍니다. 그 중에서 가장 많이 사용하는 것이 바로 특정 조건의 문서를 검색하는 쿼리(query) 작업입니다. 이 문서에서는 미디어위키의 쿼리 작업을 하는 방법에 대해 안내하겠습니다.

사용방법[원본 편집]

가장 편한 방법은 API 실험실에서 action=query, format=json(그나마 가장 보기 좋습니다.)을 선택한 뒤 action=query 탭에서 옵션을 고르시면 됩니다.


프로그래밍 언어를 이용한 접근[원본 편집]

직접 쿼리 URL을 입력해서 정보를 긁어올 수도 있지만 대게는 프로그래밍 언어를 활용해서 데이터를 가져올 수 있습니다. 여기서는 파이썬과 미디어위키용 자바스크립트를 이용해서 쿼리에 접근하는 방법에 대해 알아보겠습니다. 예시는 '리브레 위키'로 시작하는 리브레 위키의 모든 문서명을 조회하는 쿼리입니다.

미디어위키 쿼리 URL
/api.php?action=query&format=json&list=allpages&titles=리브레_위키&apfilterredir=nonredirects&aplimit=35

응답 결과 출력

참조 : mw:API:Allpages

Python
JS for mediawiki
"""
    get_allpages.py
    리브레 위키에서 "리브레 위키"로 시작하는 문서 찾기

"""

import requests

S = requests.Session()

URL = "https://librewiki.net/api.php"

PARAMS = {
    "action": "query",
    "format": "json",
    "list": "allpages",
    "apfrom": "리브레_위키",
    "apfilterredir": "nonredirects",
    "aplimit":"35",
    "utf8":1 #한글 표기시 반드시 해야 한다.
}

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

PAGES = DATA["query"]["allpages"] # 페이지 목록만 추출

for page in PAGES:
    print(page["title"])
/*
	get_allpages.js
	MediaWiki API Demos 
    리브레 위키에서 '리브레 위키'로 시작하는 문서 추출

	MIT License
*/

var params = {
    "action": "query",
    "format": "json",
    "list": "allpages",
    "apfrom": "리브레_위키",
    "apfilterredir": "nonredirects",
    "aplimit":"35",
    "utf8":1 // 한글 표기시 반드시 해야 한다.
},
	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 ); //콘솔창에 출력
	}
} );

참조[원본 편집]