사용자:멀뚱이/봇 사용법

위키백과 ― 우리 모두의 백과사전.

위키백과 봇의 매우 자세한 사용법에 대해 작성중입니다. 임시문서이나, 다른 사용자들도 내용을 추가 보충해주셔도 물론 환영합니다. 제가 쓰는 봇은 Wybot입니다.

이 문서는 Python 봇에 대한 설치 및 사용방법에 대한 문서이다.

목차

[편집] 설치법

주의 : 윈도우즈 XP, python 언어를 위주로 설명함.


[편집] 1. 언어 컴파일러를 다운받는다.

[1] : 여기에 가면 python 프로그램을 다운받을 수 있다. 설치는 매우 간단함. 그냥 실행만 시키면 설치된다.
제어판-시스템-고급-환경변수에서 PATH=.... 이렇게 된 부분이 나오는데, 여기 끝에다가, ;c:\python24를 추가한다.

[편집] 2. 봇 소스 프로그램을 다운받는다.

[2] 여기가면 python bot을 다운받을 수 있다. 역시 매우 간단하다.

[편집] 3. CVS를 설치한다.

CVS를 설치하면 자주 올라오는 다음버전의 소스들을 자동으로 업그레이드 할 수 있다. (옵션사항임)

윈도우즈용 CVS는 [3]에 있다. 그러니까, 2번의 봇 소스를 받지 않고, 3번의 CVS를 받고 아래 그림처럼 설정하면...자동으로 받는다. 업뎃도 자동으로 다 해준다. 이게 훨씬 사용하기 편하다. 처음에 설정하는데 에러가 약간 나지만, 몇번 하면 익숙해짐.
TortoiseCVS 설정화면

[편집] TortoiseCVS 완벽설치법

1. CVS만 잘 설치하면, 최신 버전 자동으로 받는 것이 손쉬워진다.

2. 보통, 소스프로그램을 제공하는 곳에는 CVS 링크가 보인다. 거기를 들어간다. 여기 에도 CVS가 보인다. 클릭한다.

3. Browse CVS Repository(CVS 저장소) 뭐 이런 링크가 있다. CVS 디렉토리를 보여주는 곳인데, 역시 들어가서 좀 살펴본다. http://pywikipediabot.cvs.sourceforge.net/pywikipediabot/ 여기가 바로 CVS 파일 목록이다. Index of 라고 나온다.

4. 여기서 프로젝트 이름은 뭘까? pywikipediabot 이다. 최상위 이름이 프로젝트 이름이다. 저장소 폴더 (Repository Folder)에는 보통 /cvsroot/프로젝트 이름이렇게 들어간다. /cvsroot가 아닌 경우는 아직 본 적 없다. 그러나 확인해보고 시험해 보면 된다. 보통은 /cvsroot/프로젝트 이름로 사용한다.

5. 여기서 모듈 이름은 뭘까? 최상위 다음의 차상위 디렉토리 이름이다. http://pywikipediabot.cvs.sourceforge.net/pywikipediabot/ 여기에서는 다음과 같이 최상위 디렉토리들이 보인다. 이게 다 각각의 모듈 이름이다.

Neuer Ordner/
Python2/
Pywikipedia/
Pywikipedia-2/
pywikipediabot/
robot2/
tcl/

클릭해보면, 디렉토리들 다 엉성하고, Pywikipedia/ 이게 알짜다. 그러니 모듈이름은 Pywikipedia 로 적어줘야 한다.

6. 모듈이 뭐가 있는지 모르겠다? 그럼 목록 가져오기(Fetch List)를 클릭하면 자동으로 모듈을 전부 목록으로 불러들인다. 이제 그 중 하나 선택만 하면 된다.

7. c:/이나 뭐 어디에, 새폴더를 만들고서 안으로 들어간다. 그리고 마우스 오른쪽을 클릭하면 CVS Checkout 이 보인다. 그거 클릭하면 위의 그림과 같이 뜬다. 거기에 입력을 해주면 된다.

[편집] 다른 예제

1. 이제 다른 CVS도 한 번 설치해보자.

2. 예제는 위키백과 봇의 다른 버전인 dotnetwikibot 이다. 닷넷 프레임워크 2.0을 사용하는 C#으로 작성된 봇이다. 필요한 구성요소는 다음과 같다:

1) 닷넷 프레임워크 2.0 설치. 마이크로소프트사 다운로드 페이지에서 다운받아 설치.
2) C# 컴파일러 설치. (모노 프로젝트의 monowin32(프로젝트 이름)이 유명하다. 역시 공짜다. 오픈소스다.)
3) dotnetwikibot 프로그램 설치. http://sourceforge.net/projects/dotnetwikibot

여기서 2) monowin32 와 3) dotnetwikibot 는 CVS로 제공하고 있다.

3. 이번 예제에서는 설치가 간단한 dotnetwikibot만 설치해보자.

1) 새폴더 아무데나 만든다.
2) 마우스 오른쪽 클릭, CVS Checkout 클릭
3) 프로토콜 = :pserver
4) 서버 = dotnetwikibot.cvs.sourceforge.net
5) 저장소 폴더 (Repository Folder) = /cvsroot/dotnetwikibot
6) 사용자 이름 = anonymous
7) 모듈 = framework
8) 확인 클릭.

4. 어떻게 이것을 알았는가? http://sourceforge.net/projects/dotnetwikibot 에 가서 CVS를 클릭하면 http://sourceforge.net/cvs/?group_id=167838 로 연결된다. 여기에 설명이 있다.

5. 내친김에 monowin32 CVS도 설치해보자. http://forge.novell.com/modules/xfmod/project/?monowin32

1) 새폴더 아무데나 만든다.
2) 마우스 오른쪽 클릭, CVS Checkout 클릭
3) 프로토콜 = :ext
4) 서버 = forgecvs1.novell.com
5) 저장소 폴더 (Repository Folder) = /cvsroot/monowin32
6) 사용자 이름 = anonymous
7) 모듈 = 모르겠다. 세 가지가 있는데 어떤게 메인 모듈인지 모르겠음. 모르면 셋 다 설치해도 될 거다. ㅎㅎ
8) 확인 클릭.
9) 어라? 암호를 묻는다. 떨지말자. 저기 사이트의 CVS 접속법 설명란에, 암호물어오면 anonymous 라고 한 번 더 쳐주라더라. 설치 무지 잘된다. 오~

그러나, monowin32는 CVS 설치가 과연 필요한지 모르겠다. 그냥 여기서 런타임 인스톨러 설치하면 간단히 끝나는 걸로 보인다.

[편집] 4. 봇을 설정한다.

봇 설정이 필요한데, 봇 소스가 설치된 디렉토리 pywikipediabot 에 들어가 보면, 많은 .py 확장자 파일이 있다. 거기에 추가로 user-config.py 파일을 만든다.

[편집] user-config.py의 내용

mylang='ko'
usernames['wikipedia']['en']='Wybot'
usernames['wikipedia']['ko']='Wybot'
(ko 말고 en도 되고 기타 여러 언어 설정가능. 단, 웹상의 위키백과 언어 설정과 동일해야 한다.)
(wikipedia 대신 다른 것도 가능하다. 뒤에 것은 어느나라 위키백과냐는 거고, en=미국, ko=한국 위키백과다. 그 뒤에는 그 서버에 등록된 아이디를 넣으면 된다. 복수설정도 가능하다. 봇용 계정을 따로 만드는계 통례이며, 보통은 그 이름이 XXXXbot 이런식으로 쓴다.)

[편집] Commons 사용시

mylang='commons'
family='commons'
usernames['commons']['commons']='Wybot'

[편집] 5. 봇을 실행한다.

실행창에서 cmd를 치면, 도스의 텍스트창이 나온다. 거기서 봇을 실행해야 한다. (아직 GUI버전은 나오지 않은 것 같음)
login.py를 입력하면, 접속이 시작된다. 암호를 입력하면 이제 봇이 위키백과에 접속된 거다.
봇은 여러개의 개별파일로 되어 있으며, 각각의 .py파일이 각각의 역할을 하는 로봇이다.

[편집] 한글사용문제

  • 1. user-config.py에서 'console-encoding'부분을 UTF-8에서 CP949로 고쳐보세요. 이렇게 하면 아무 변수 없이 interwiki.py 만 단순히 실행시켰을 때 여기서 한글을 입력하면 잘 됩니다.
 console-encoding = 'cp949'
  • 2. 만약에 -start나 그 외의 변수를 입력해야 할 경우가 있죠. 예를 들어 '택시'문서 부터 작업을 시작할 때 '택시'라고 입력하지 마시고, %ED%83%9D%EC%8B%9C로 입력하세요. 근데 불편하죠? 그래서 저는 명령 프롬포트상에서 입력하지 않고, 실행창에서 아래와 같이 명령어를 다 넣어서 작업한답니다.

예제

 c:\pywikipedia\interwiki.py -start %ED%83%9D%EC%8B%9C   

-- 파란로봇군 2006년 9월 11일 (화) 19:06 (KST)

  • 3. cmd.exe에 /U 옵션을 붙여서 실행합니다.
 cmd.exe /U
  • 4. cmd 창의 속성에서 글꼴을 굴림체로 바꿉니다.
  • 5. 그러면 다음과 같이 cmd 창에 깨지지 않고 한글 출력이 됩니다.
[[스모그]]: [[en:Smog]] gives new interwiki [[zh:光化?烟?]]
[[스모그]]: [[en:Smog]] gives new interwiki [[pt:Smog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[gl:Smog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[hu:Szmog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[cs:Smog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[he:'rphykh]]***
[[스모그]]: [[en:Smog]] gives new interwiki [[pl:Smog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[es:Smog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[ja:スモッグ]]
[[스모그]]: [[en:Smog]] gives new interwiki [[nl:Smog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[sv:Smog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[fr:Smog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[ms:Asbut]]
[[스모그]]: [[en:Smog]] gives new interwiki [[de:Smog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[it:Smog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[oc:Esmog]]***
[[스모그]]: [[en:Smog]] gives new interwiki [[da:Smog]]
[[스모그]]: [[en:Smog]] gives new interwiki [[ru:Смог]]
[[스몰렌스크]]: [[en:Smolensk]] gives new interwiki [[bg:Смоленск]]
[[스몰빌]]: [[en:Smallville (TV series)]] gives new interwiki [[ar:smwlfyl]]***
[[스몰빌]]: [[en:Smallville (TV series)]] gives new interwiki [[th:???????????]]

[[스몰빌]]: [[en:Smallville (TV series)]] gives new interwiki [[pt:Smallville (s
erie)]]***
[[스몰빌]]: [[en:Smallville (TV series)]] gives new interwiki [[fi:Smallville]]
[[스몰빌]]: [[en:Smallville (TV series)]] gives new interwiki [[sq:Smallville]]
[[스몰빌]]: [[en:Smallville (TV series)]] gives new interwiki [[hr:Smallville]]
[[스몰빌]]: [[en:Smallville (TV series)]] gives new interwiki [[hu:Smallville]]
[[스몰빌]]: [[en:Smallville (TV series)]] gives new interwiki [[sr:Смолви
л (ТВ сериjа)]]***

[편집] 파이썬에서의 한글사용

[편집] cmd.exe에서의 한글사용

  • 윈도XP의 ftp클라이언트로 utf-8 서버접속 utf-8로 운영되는 리눅스 서버상에서 사용되는 한글파일명의 파일들은 그대로 윈도XP로 다운로드 받게되면 파일명이 제대로 나타나지 않으며 심한경우는 아예 삭제 조차도 안되는 상황까지 발생한다. 또 윈도XP ftp클라언트로 서버를 접속하면 한글 파일명을 알아 볼 수가 없다. 그래서 필요한 것이 utf-8을 지원하는 ftp 클라이언트이다. 그중에 배우기가 utf-8지원 ftp를 발견(최근 아닌 2005년 여름) 한 것은 소스포지( http://sourceforge.net/projects/filezilla )의 파일질라(Fillezilla)이다. 그러나 이러한 GUI용 ftp 클라이언트가 없이도 윈도XP의 ftp 클라이언트로 충분히 가능하다는 것을 알게 되었다.
  • 일반적으로 실행상자에서 커맨드 셸상자를 띄울 경우 cmd라고만 입력하지만, 일단 cmd /U로 실행한 후에 콘솔(console)의 코드 페이지를 변경한다. 이명령은 chcp로 가능하다. 단순히 기본값 949를 유니코드(65001)로 변경하면 된다. 따라서 chcp 65001로 변경하면 된다. 그러나 이보다 먼저 적절한 폰트를 설정해야 하는데, 일단 chcp 65001을 명령하기 전에 커맨드 셸의 속성창을 띄우고 굴림체로 선택을 해준다음에 코드 페이지를 변경해야 한다.
  • 이제 utf-8 서버로 접속을 하면 한글 파일이 정상적으로 보이고, 다운로드 후에도 역시 정상적인 한글파일명을 유지한다.
  • 테스트결과 아쉬운 점은 정상적으로 보이긴 하나 화면상 일부 파일 이름이 제대로 출력되지 않는다. 이럴경우 커맨드 셸 상자의 사이즈를 살짝 재조정하면 정상적으로 보이게 된다. - 화면 처리에서 윈도XP 버그가 있어 보임![1]

[편집] 사용예제

python interwiki.py -warnfile:warnfile_en.log
python interwiki.py -askhints -file:XX
login.py -all (user-config.py에 설정된 모든 사이트에 접속)
login.py -sysop (관리자로 접속)
login.py -help (도움말 출력. 다른 .py 프로그램은 도움말이 없는 경우도 있음.)
python xmltext.py sax_parse_bug.dat
python interwiki.py -autonomous -years
python interwiki.py -autonomous -years:-500
python interwiki.py -file:autonomous.dat
python interwiki.py -warnfile:english_treelang.log
python warnfile.py english_treelang.log
python splitwarning.py
authority.py "Loxia pytyopsittacus" "Borkhausen, 1793"
python replace.py -xml -regex "{{msg:(.*?)}}" "{{\1}}"
python replace.py -xml:foobar.xml "Errror" "Error"
python replace.py -page:John_Doe -fix:HTML
python replace.py -file:articles_list.txt "errror" "error"
python solve_disambiguation.py -just -pos:New_Name Old_Name
python standardize_notes.py -page:Somepage
touch.py -start:!
patch family.py family.py.diff
cp wikipedia_family.py linuxguiden_family.py
patch linuxguiden_family.py linuxguiden_family.py.diff
python login.py
python test.py
python editarticle.py -e vim -p artikkel
python editarticle.py --help
python category.py
python catall.py artikkel

[편집] 봇의 종류

[편집] 주요 봇

  • 사용자:멀뚱이/category.py
  • 사용자:멀뚱이/check_extern.py
  • 사용자:멀뚱이/interwiki.py
  • 사용자:멀뚱이/redirect.py
  • 사용자:멀뚱이/replace.py
  • 사용자:멀뚱이/solve_disambiguation.py
  • 사용자:멀뚱이/table2wiki.py
  • 사용자:멀뚱이/upload.py
    • python upload.py -lang:commons -wiki:en Image.png
enwiki의 그림인 Image.png를 commons에 올림.

[편집] 기타 봇

  • 사용자:멀뚱이/brackethttp.py
  • 사용자:멀뚱이/catall.py
  • 사용자:멀뚱이/copy_table.py
  • 사용자:멀뚱이/editarticle.py
  • 사용자:멀뚱이/find.py
  • 사용자:멀뚱이/getimages.py
  • 사용자:멀뚱이/imageharvest.py
  • 사용자:멀뚱이/imagetransfer.py
  • 사용자:멀뚱이/pagelist.py
  • 사용자:멀뚱이/saveHTML.py
  • 사용자:멀뚱이/standardize_interwiki.py
  • 사용자:멀뚱이/standardize_notes.py
  • 사용자:멀뚱이/touch.py
  • 사용자:멀뚱이/us-states.py
  • 사용자:멀뚱이/warnfile.py

[편집] Auxiliary programs

  • 사용자:멀뚱이/extract_names.py
  • 사용자:멀뚱이/extract_wikilinks.py
  • 사용자:멀뚱이/login.py
  • 사용자:멀뚱이/splitwarning.py
  • 사용자:멀뚱이/sqldump.py
  • 사용자:멀뚱이/template.py
  • 사용자:멀뚱이/test.py
  • 사용자:멀뚱이/xmltest.py

[편집] 봇 목록

한국어 위키백과에서 사용중인 봇 목록

[편집] 등록된 봇

[편집] 미등록된 봇

봇 계정 활동 사용자 계정 비고
사용자:Palica 기여 sk:Redaktor:Palica
사용자:RCBot 기여 commons:User:Richie
사용자:Wybot 기여 사용자:멀뚱이
사용자:Afkbot 기여 사용자:Alpha for knowledge
사용자:Perebot 기여 사용자:Peremen

[편집] 기타 노하우 #1

다음의 문장들을 윈도우즈 바탕화면에 텍스트 파일로 만들어놓고, 필요할 때 복사해다가 cmd 창에 붙여넣기 하면 유용합니다.

가
interwiki.py -start:%EA%B0%80 -autonomous
나
interwiki.py -start:%EB%82%98 -autonomous
다
interwiki.py -start:%EB%8B%A4 -autonomous
라
interwiki.py -start:%EB%9D%BC -autonomous
마
interwiki.py -start:%EB%A7%88 -autonomous
바
interwiki.py -start:%EB%B0%94 -autonomous
사
interwiki.py -start:%EC%82%AC -autonomous
아
interwiki.py -start:%EC%95%84 -autonomous
자
interwiki.py -start:%EC%9E%90 -autonomous
차
interwiki.py -start:%EC%B0%A8 -autonomous
카
interwiki.py -start:%EC%B9%B4 -autonomous
타
interwiki.py -start:%ED%83%80 -autonomous
파
interwiki.py -start:%ED%8C%8C -autonomous
하
interwiki.py -start:%ED%95%98 -autonomous

[편집] 기타 노하우 #2

Wybot의 user-config.py 파일의 내용은 다음과 같다:

mylang='ko' 
usernames['wikipedia']['ko']='Wybot'
usernames['wikipedia']['en']='Wybot'
usernames['wikipedia']['ja']='Wybot'
usernames['wikipedia']['zh']='Wybot'
usernames['wikipedia']['de']='Wybot'
usernames['wikipedia']['fr']='Wybot'
usernames['wikipedia']['es']='Wybot'
usernames['wikipedia']['ru']='Wybot'
console_encoding = 'cp949'

[편집] 기타 노하우 #3

단축 아이콘 만들기

1. 윈도우즈 XP에서 단축 아이콘(바로 가기) 만들기이다.
2. 바탕화면에서 마우스 오른쪽 버튼 클릭
3. 새로만들기 -> 바로 가기
4. 바탕화면에 생긴 바로 가기에 적당한 이름 지워준다.
5. 만들어진 단축 아이콘에 마우스 오른쪽 버튼, 속성 클릭
6. 바로 가기 항목에서 대상 = %windir%\system32\cmd.exe /U
7. 시작 위치 = 봇이 설치된 폴더 (예를들면, C:/pywikipedia)
8. 확인 클릭

[편집] 기타 노하우 #4

소스 프로그램 에디터는 Vim을 추천함. 유닉스의 vi 에디터를 MS 윈도우즈용으로 바꾼 것으로, 공개 소프트웨어임. http://www.vim.org/

[편집] 주석

  1. http://xpz.winnwe.com/index.php/site/perma/388/

[편집] 참고 항목

영어 위키백과에서 봇을 이용하려면, 반드시 이 문서에 자신의 봇 이름을 추가해야만 접속이 된다.
따로 봇 사용허가가 없이 그냥 등록하는 경우라면 without flag, 즉 비공식적인 봇 명단에 추가하면 된다.
이 문서는 m:Using the python wikipediabot에서 한국어로 번역 중입니다. 원문은 글 안에 주석 처리되어 있습니다. 같이 번역해 주세요.