경고 : 최신판이 아닙니다. 이 문서의 오래된 판을 편집하고 있습니다. 이것을 저장하면, 이 판 이후로 바뀐 모든 편집이 사라집니다. 로그인하고 있지 않습니다. 편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!{{소프트웨어 정보 |개발자= Pywikibot team |발표일 = 2002년 |최신 버전=2.0rc5 |프로그래밍 언어=[[파이썬]] |운영 체제= [[윈도우]], [[macOS]], [[리눅스]] |플랫폼=[[파이썬]], 2.7 버전 혹은 3.3 이상 버전.<ref>2.7버전은 추후 지원 중단할 예정</ref> |라이선스= 비자유(Copyrighted)<ref>일부 코드는 공개 소스를 기반으로 사용하여 공개 라이선스이다. [[mw:Pywikibot/Overview]] 참조.</ref> }} '''Pywikibot'''은 [[미디어위키]] 기반의 위키에서 [[파이썬]](Python) 스크립트를 돌려서 위키 편집을 용이하게 하는 도구이다. [[위키미디어]] 재단에서 공식적으로 봇을 만드는 데 사용하는 도구이며, 이를 이용해서 위키 봇을 만드는 데에도 유용하게 이용할 수 있다. [[미디어위키]] 홈페이지에 사용법이 자세하게 나와 있으며, 파이썬에 대한 지식이 부족해도 설치만 하면 내장된 스크립트를 통해서 위키를 쉽게 편집할 수 있게 도와준다. == 설치방법 == 우선 Pywikibot은 [[파이썬]] 기반으로 돌아가는 도구이기에 파이썬을 설치해야 한다. [https://www.python.org/ 파이썬 공식 홈페이지]에서 다운로드를 받는다. 다만 윈도우 운영체제의 경우 파이썬을 설치만 해서는 명령 프롬프트(cmd.exe) 창에 python 명령어가 활성하되지 않기에 반드시 제어판- 시스템-왼쪽의 고급 시스템 정보-고급 탭-아래 환경 변수 버튼을 누르고 path 변수를 python 실행파일이 설치된 폴더의 디렉토리를 지정해야 한다. 그 다음에는 [[mw:Manual:Pywikibot/Installation|Pywikibot 설치 페이지]]에서 Pywikibot 소스를 다운로드 받는다. python 명령어가 명령 프롬프트에 활성화된 것을 확인하면 명령 프롬프트 창에 아래와 같이 입력해서 로그인이 되는지 확인하면 된다. <syntaxhighlight lang=bash> > cd "c:\users\username\pywikibot" > python pwb.py login </syntaxhighlight> user-config.py를 지정하지 않았다면 user-config.py를 지정하라는 메시지가 자동으로 띄운다. 안내창대로 입력하면 된다. 그러나 기본적으로 설정된 위키 이외의 위키에서 사용하려면 이 방법으로는 사용이 안 된다. 따라서 아래에 서드파티 위키에서 사용하는 방법을 안내할 것이다. == 사용방법 == 일단 메인 소스인 pwb.py를 이용해서 실행시킨다. 명령어 구조는 다음과 같다. <code>python pwb.py (script명) (부가변수명)</code> 각 기본 스크립트의 설명에 대해서는 [[mw:Manual:Pywikibot/Scripts]]를 참조하자. 참고로 각 스크립트들은 script 폴더에 내장되어 있다. 파이썬에 대한 지식이 부족해도 봇을 쉽게 다룰 수 있다. == 리브레 위키에서 사용하는 방법 == 우선 pywikibot을 설치한 디렉토리에서 pywikibot/families 디렉토리를 연다. 그 다음에 아래와 같이 패밀리명과 언어명, url 등을 입력해야 한다. 여기서 파일명을 반드시 (위키명)_family.py로 지정해야 한다. <syntaxhighlight lang="python"> from pywikibot import family # pywikibot에서 사용하고 있다는 표시 class Family(family.Family): def __init__(self): family.Family.__init__(self) self.name = 'libre' self.langs = { 'ko': 'librewiki.net', #url 입력하기 } def protocol(self, code): #사용 프로토콜, https를 사용할 경우 반드시 지정해야 한다. return 'https' def scriptpath(self, code): # 스크립트 경로 return '' def apipath(self, code): # api 경로 return '/api.php' </syntaxhighlight> 마지막으로 pwb.py가 있는 디렉토리와 같은 곳에서 user-config.py를 아래와 같이 설정하면 된다. <syntaxhighlight lang="python"> family = 'libre' mylang = 'ko' usernames['libre']['ko']=u'(사용자명)' </syntaxhighlight> 이제 확인하려면 pwb.py가 있는 디렉토리로 가서 아래와 같이 명령어를 입력한다. 이 때에 비밀번호 입력창이 뜨면 비밀번호를 입력하면 로그인이 가능한 것을 확인할 수 있다. <syntaxhighlight lang="PowerShell"> PS C:\(directory)\Pywikibot>python pwb.py login </syntaxhighlight> 다만 얘기치 못한 편집 제한상황에 대처하기 위해 봇 비밀번호를 설정할 것을 권장한다. 봇 비밀번호를 만들면 API를 이용해서 접근하기에 비번을 입력하지 않아도 접근할 수 있다. 우선 Pywikibot으로 봇을 사용할 계정으로 로그인 한 뒤 [[특수:봇비밀번호]] 문서를 열고 봇 이름을 지정한다. 그러면 이 특수문서가 그 봇에 대해 비밀번호를 생성한다. 그 다음 user-config.py에 아래와 같이 설정한다. <syntaxhighlight lang="python"> mylang = 'ko' family = 'libre' usernames['libre']['ko'] = u'(사용자명)' password_file = "user-password.py" #비번 정보를 저장할 파일. </syntaxhighlight> 그 다음 user-password.py를 pwb.py와 같은 디렉토리에 다음과 같이 입력한다. 그러면 비번 입력창 없이 바로 로그인이 가능해진다. <syntaxhighlight lang="python"> (u'(사용자명)', BotPassword(u'(봇이름)', u'(봇이름에 대한 비밀번호)')) </syntaxhighlight> 한 계정으로도 여러 개의 봇을 생성할 수도 있다. == 활용 예제 == === 문서 분류 바꾸기 === {{참조|mw:Manual:Pywikibot/category.py}} 가장 많이 활용하는 예제 중 하나로 문서의 분류명을 바꾼다. Pywikibot을 설치하면 category.py라는 파일에 의해 동작된다. 사용하려면 명령 프롬프트나 Powershell 등을 이용해서 Pywikibot에 로그인한 뒤 아래와 같은 형식으로 명령어를 입력하면 된다. <pre> python pwb.py category (동작) [-(옵션)]</pre> 여기서 동작(Action)은 "add"처럼 -기호를 사용하지 않고, 반대로 추가 옵션들은 반드시 -기호를 사용한 후에 서술해야 한다. 우선 동작의 옵션은 다음과 같다. * add - 분류를 추가한다. 사용 시에 "-filename:"같은 특별한 옵션이 없을 경우 특정 문서와 링크로 연결된 문서에 대해 분류 추가에 대한 질의응답을 실시한다. * move - 분류를 바꾼다. 사용 시에 "-filename:" 같은 특별한 옵션이 없을 경우 위키 내부의 모든 문서에 대해 분류 변경을 시도한다. * remove -분류를 지운다. 사용 시에 "-filename:" 같은 특별한 옵션이 없을 경우 위키 내부의 모든 문서에 대해 분류 제거를 시도한다. * tidy - 분류 안에 있는 문서들을 하위 분류로 옮긴다. 특정한 분류명 A를 지정하면 분류 A에 있으면서 A의 하위 분류에 있지 않은 문서들에 대해 하위 분류로 이동할 지 질의한다. * tree - 특정 분류와 그 하위 분류 구조를 보여준다. * listify - 특정 분류 안에 있는 문서들을 보여준다. 예를 들면 분류 A를 분류 AB로 옮기는 것을 시도할 때 아래와 같은 코드를 입력하면 된다. <pre> python pwb.py category move -from:"A" -to:"AB"</pre> === 문서 내부의 특정 텍스트를 다른 것으로 바꾸기 === {{참조|mw:Manual:Pywikibot/replace.py}} 문서 내부의 특정 어구를 찾아서 바꾸는 스크립트이다. replace.py 스크립트를 사용한다. 다음과 같이 사용할 수 있다. <pre> python pwb.py replace [-(옵션)]</pre> 옵션에는 여러 가지가 있는데, 우선 "user-fixes.py"문서에 지정된 패턴대로 텍스트 치환을 시도하려면 다음과 같이 입력하면 된다. <pre> $ python pwb.py replace -fix:(example) [(-옵션)]</pre> 여기서 fix는 특정 옵션으로 바꾼다는 것을 의미한다. 예를 들면 fix:HTML이라고 표현하면 HTML 태그를 미디어위키 문법에 맞게 고칠 수 있다. 다른 방법으로 하나의 어구를 바꿀 때는 다음처럼 사용할 수 있다. regex 태그를 사용하면 바꾸는 내용을 일반적인 키워드가 아닌 정규 표현식 형태로 변화시킨다. <pre> python pwb.py replace -start:! [-regex] "(바꾸기전1)" "(바꾼후1)" "(바꾸기전2)" "(바꾼후2)" ... </pre> 또 다음과 같은 옵션을 사용할 수도 있다. * cat:(분류명) - 특정 분류 안에 있는 문서들을 대상으로 한다. * file:(파일명) - 특정 파일명의 텍스트 문서 안에 적힌 문서들을 대상으로 한다. * links:(문서명) - 지정한 문서 내부에서 링크로 연결된 문서들을 대상으로 한다. * page:(문서명) - 특정 문서를 대상으로 한다. * ref:(파일명) - 지정한 문서를 연결하는 링크를 포함하는 문서들들 대상으로 한다. * start:(문서명) - 위키 내에서 특정 문서명을 시작으로 모든 문서들을 대상으로 한다. "-start:!"라고 표시하면 모든 문서에 대해 찾아 바꾸기를 수행할 수 있다. * xml:(xml파일명) - [[특수:내보내기]]를 통해 작성된 xml 파일 안에 있는 문서들을 대상으로 수행한다. ==== 특정 문자가 입식이 안 될때(이스케이프 시퀀스) ==== 특정문자는 인식이 안 되기 때문에 이스케이프 문자를 추가로 붙여야 한다. *" ** \" *| ** ^| (Windows) == 참조 == * [[mw:Manual:Pywikibot]] - 미디어위키 Pywikibot 매뉴얼 * [[AutoWikiBrowser]] - 위키백과에서 봇을 만드는 다른 도구이다. * [https://phabricator.wikimedia.org/diffusion/PWBC/browse/master/LICENSE Pywikibot 저작 정보] {{각주}} [[분류:위키 소프트웨어]] [[분류:미디어위키]] [[분류:2002년 소프트웨어]] 요약: 리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 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: Ă ă Ğ ğ Ŏ ŏ Ŭ ŭ · Ā ā Ē ē Ī ī Ō ō Ū ū · à ã Ñ ñ Õ õ · Å å Ů ů · Ą ą Ę ę · Ç ç Ş ş Ţ ţ · Ő ő Ű ű · Ș ș Ț ț 이 문서에서 사용한 틀: 틀:각주 (원본 보기) (준보호됨)틀:본문 (원본 보기) (준보호됨)틀:소프트웨어 정보 (원본 보기) (준보호됨)틀:정보상자 주제칸 (원본 보기) (준보호됨)틀:정보상자 칸 (원본 보기) (준보호됨)틀:정보상자 큰칸 (원본 보기) (준보호됨)틀:참고 (원본 보기) (준보호됨)