로그인하고 있지 않습니다. 편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.스팸 방지 검사입니다. 이것을 입력하지 마세요![[도움말:미디어위키 API|미디어위키 API]]는 이용자들이 특히 CLI 환경에서 데이터를 쉽고 빠르게 다룰 수 있게 도와줍니다. 그 중에서 가장 많이 사용하는 것이 바로 특정 조건의 문서를 검색하는 쿼리(query) 작업입니다. 이 문서에서는 미디어위키의 쿼리 작업을 하는 방법에 대해 안내하겠습니다. == 사용방법 == 가장 편한 방법은 [[특수:ApiSandbox|API 실험실]]에서 action=query, format=json(그나마 가장 보기 좋습니다.)을 선택한 뒤 action=query 탭에서 옵션을 고르시면 됩니다. == 프로그래밍 언어를 이용한 접근 == 직접 쿼리 URL을 입력해서 정보를 긁어올 수도 있지만 대게는 [[프로그래밍 언어]]를 활용해서 데이터를 가져올 수 있습니다. 여기서는 [[파이썬]]과 미디어위키용 [[자바스크립트]]를 이용해서 쿼리에 접근하는 방법에 대해 알아보겠습니다. 예시는 '리브레 위키'로 시작하는 리브레 위키의 모든 문서명을 조회하는 쿼리입니다. ; 미디어위키 쿼리 URL :/api.php?action=query&format=json&list=allpages&titles=리브레_위키&apfilterredir=nonredirects&aplimit=35 응답 결과 출력 {{숨김 시작|title=리브레 위키 미디어쿼리 응답 결과 출력}} <syntaxhighlight lang="json"> { "batchcomplete": "", "query": { "allpages": [ { "pageid": 1941, "ns": 0, "title": "리브레 위키" }, { "pageid": 15714, "ns": 0, "title": "리브레 위키-위키쨩 디자인 분쟁" }, { "pageid": 141789, "ns": 0, "title": "리브레 위키/en" }, { "pageid": 69000, "ns": 0, "title": "리브레 위키/고지 달성" }, { "pageid": 14636, "ns": 0, "title": "리브레 위키/고지 달성/비공식 고지" }, { "pageid": 76079, "ns": 0, "title": "리브레 위키/다른 위키들과의 차이점" }, { "pageid": 78957, "ns": 0, "title": "리브레 위키/만우절" }, { "pageid": 45493, "ns": 0, "title": "리브레 위키/문제점" }, { "pageid": 5416, "ns": 0, "title": "리브레 위키/역사" }, { "pageid": 112485, "ns": 0, "title": "리브레 위키/연도별 기록" }, { "pageid": 33073, "ns": 0, "title": "리브레 위키/오늘의 게시판은 몇 시에 터졌나" }, { "pageid": 1230, "ns": 0, "title": "리브레 위키/오늘의 리브레 위키는 몇 시에 터졌나" }, { "pageid": 57921, "ns": 0, "title": "리브레 위키/오늘의 리브레 위키는 몇 시에 터졌나/2015년" }, { "pageid": 82246, "ns": 0, "title": "리브레 위키/오늘의 리브레 위키는 몇 시에 터졌나/2016년" }, { "pageid": 13153, "ns": 0, "title": "리브레 위키/통계" }, { "pageid": 55222, "ns": 0, "title": "리브레 위키/통계/보존문서" }, { "pageid": 55225, "ns": 0, "title": "리브레 위키/통계/보존문서/2015년" }, { "pageid": 56407, "ns": 0, "title": "리브레 위키/통계/보존문서/2016년" }, { "pageid": 77218, "ns": 0, "title": "리브레 위키/통계/보존문서/2017년" }, { "pageid": 94848, "ns": 0, "title": "리브레 위키/통계/보존문서/2018년" }, { "pageid": 103398, "ns": 0, "title": "리브레 위키/통계/보존문서/2019년" }, { "pageid": 138220, "ns": 0, "title": "리브레 위키/통계/보존문서/2020년" }, { "pageid": 51508, "ns": 0, "title": "리브레 위키 12·10 서버 사태" }, { "pageid": 58698, "ns": 0, "title": "리브레 위키 2016년 2월 서버 대란" }, { "pageid": 59410, "ns": 0, "title": "리브레 위키 2016년 3월 DDoS 공격 사태" }, { "pageid": 67051, "ns": 0, "title": "리브레 위키 2016년 7월 서버 대란" }, { "pageid": 13247, "ns": 0, "title": "리브레 위키 5·12 저작권 사태" }, { "pageid": 17087, "ns": 0, "title": "리브레 위키 5·24 위키방 사태" }, { "pageid": 19239, "ns": 0, "title": "리브레 위키 6·10 예비군 사태" }, { "pageid": 31764, "ns": 0, "title": "리브레 위키 6·29 게시판 폭파 사태" }, { "pageid": 19241, "ns": 0, "title": "리브레 위키 대피소" } ] } } </syntaxhighlight> {{숨김 끝}} 참조 : [[mw:API:Allpages]] {{탭 |제목1=Python |내용1= <syntaxhighlight lang="python"> """ 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"]) </syntaxhighlight> |제목2=JS for mediawiki |내용2= <syntaxhighlight lang="javascript"> /* 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 ); //콘솔창에 출력 } } ); </syntaxhighlight> }} == 참조 == * [[mw:API:Query]] - 미디어위키 홈페이지 도움말 {{리브레 위키 도움말}} [[분류:도움말]] 요약: 리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다. 취소 편집 도움말 (새 창에서 열림) | () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |} {{lang|}} · {{llang||}} · {{인용문|}} · {{인용문2|}} · {{유튜브|}} · {{다음팟|}} · {{니코|}} · {{토막글}} {{삭제|}} · {{특정판삭제|}}(이유를 적지 않을 경우 기각될 가능성이 높습니다. 반드시 이유를 적어주세요.) {{#expr:}} · {{#if:}} · {{#ifeq:}} · {{#iferror:}} · {{#ifexist:}} · {{#switch:}} · {{#time:}} · {{#timel:}} · {{#titleparts:}} __NOTOC__ · __FORCETOC__ · __TOC__ · {{PAGENAME}} · {{SITENAME}} · {{localurl:}} · {{fullurl:}} · {{ns:}} –(대시) ‘’(작은따옴표) “”(큰따옴표) ·(가운뎃점) …(말줄임표) ‽(물음느낌표) 〈〉(홑화살괄호) 《》(겹화살괄호) ± − × ÷ ≈ ≠ ∓ ≤ ≥ ∞ ¬ ¹ ² ³ ⁿ ¼ ½ ¾ § € £ ₩ ¥ ¢ † ‡ • ← → ↔ ‰ °C µ(마이크로) Å °(도) ′(분) ″(초) Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ(뮤) Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω · Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ · Ϊ ϊ Ϋ ϋ · ΐ ΰ Æ æ Đ(D with stroke) đ Ð(eth) ð ı Ł ł Ø ø Œ œ ß Þ þ · Á á Ć ć É é Í í Ĺ ĺ Ḿ ḿ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź · À à È è Ì ì Ǹ ǹ Ò ò Ù ù · İ Ż ż ·  â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û · Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ · ǘ ǜ ǚ ǖ · caron/háček: Ǎ ǎ Č č Ď ď Ě ě Ǐ ǐ Ľ ľ Ň ň Ǒ ǒ Ř ř Š š Ť ť Ǔ ǔ Ž ž · breve: Ă ă Ğ ğ Ŏ ŏ Ŭ ŭ · Ā ā Ē ē Ī ī Ō ō Ū ū · à ã Ñ ñ Õ õ · Å å Ů ů · Ą ą Ę ę · Ç ç Ş ş Ţ ţ · Ő ő Ű ű · Ș ș Ț ț 이 문서에서 사용한 틀: 틀:Skin (원본 보기) (준보호됨)틀:둘러보기 상자 (원본 보기) (보호됨)틀:둘러보기 상자/핵심 (원본 보기) (보호됨)틀:리브레 위키 도움말 (편집) 틀:숨김 끝 (원본 보기) (준보호됨)틀:숨김 시작 (원본 보기) (준보호됨)틀:탭 (원본 보기) (준보호됨)틀:탭/styles.css (편집) 틀:틀바 (원본 보기) (준보호됨)