사용자:WonRyong/Bot Howto

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

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



설치법[편집]

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


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

[1] : 여기에 가면 python 프로그램을 다운받을 수 있다. 설치는 매우 간단함. 그냥 실행만 시키면 설치된다.
제어판-시스템-고급-환경변수(윈도우 비스타의 경우 제어판-시스템-고급 시스템 설정-(UAC사용시 관리자 권환 획득)-고급)에서 PATH=.... 이렇게 된 부분이 나오는데, 여기 끝에다가, ;c:\python25를 추가*한다.
  • 여기 끝에다가, 설치(Install)시 지정한 폴더명(경로포함)이 c:\python25라면 ;를 추가해서 맨끝에 삽입한다.

(예) ;c:\python25

2. SVN을 설치한다.[편집]

윈도우즈용으로는 TortoiseSVN 에서 다운받아 설치한다.

아무곳에서나, 새폴더를 하나 생성한 후, 그 안에 들어가서, 마우스 오른쪽 버튼을 눌러 SVN Checkout...을 클릭하여, URL of Repository에 다음을 입력한다.

http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia/

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

봇 설정이 필요한데, 봇 소스가 설치된 디렉토리 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'

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

실행창에서 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에서의 한글사용[편집]

최신[편집]

  • 옛날에는 윈도우즈의 cmd.exe에서 한글입력 출력이 에러가 났었는데, 지금은 나지 않습니다. 아무 추가적인 설정없이 바로 한글 입출력이 잘 됩니다. -- 이원룡 2008년 5월 6일 (화) 12:29 (KST)

옛날[편집]

  • 윈도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]

우분투에서 봇 사용하기[편집]

봇을 사용하려면, 윈도우 XP는 비추천입니다. 우분투를 설치하세요.

저는 윈도우 XP 말고 우분투 7.04 버전도 같이 씁니다.

위키피디아에 봇을 돌리는데는 윈도우 XP 보다 우분투가 훨씬 좋습니다. 정말 좋아요.

한글이 전혀 안 깨집니다. 전혀!! NEVER!!!

윈도우 XP 만 쓰신다구요? 그럼 우분투 공식 홈페이지에 가셔서, CD 한장 보내달라고 하세요. 네덜란드인가 덴마크에서 택배로 무료 씨디가 날아옵니다. 미러사이트에서 이미지를 다운받아 구우세요. 그걸로 바로 설치하면, 윈도우 XP 랑 우분투랑 같이 사용할 수 있죠.

우분투에 봇 설치하기[편집]

매우 간단합니다.

터미널을 엽니다.

me@desktop:~$ cd ~
me@desktop:~$ sudo apt-get install python
Password: root 계정 암호입력하시고...
꾸러미 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
Reading state information... 완료         
python 꾸러미는 이미 최신 버전입니다.
0개 업그레이드, 0개 새로 설치, 0개 지우기 및 0개 업그레이드 안 함.
me@desktop:~$ 

간단하죠? 이렇게 python 설치가 끝!! 뭐 인터넷에서 뒤져보고 할 것도 없지요.

그럼 이제 python 언어를 깔았으니까, python 언어용 bot 프로그램을 설치해야죠?

me@desktop:~$ cd ~
me@desktop:~$ sudo apt-get install subversion
Password: root 계정 암호입력하시고...

엥? 또 같단하죠? 이게 바로 SVN 설치랍니다. 너무 간단했나? ㅎㅎ

그러니까, python 언어용 bot 프로그램을 자동으로 설치하고 업그레이드 시켜주는 프로그램이죠.

이제 마지막으로 python 언어용 bot 프로그램을 설치합니다.

me@desktop:~$ cd ~
me@desktop:~$ svn co http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia pywikipedia

너무 간단했나요? ㅋㅋ 이게 봇 설치 완료입니다. 아이고 쉬워라!! ^^

우분투에 봇 설정하고 실행하기[편집]

그런데, 간단한 좀 작업을 더 해줘야 봇이 제대로 작동합니다.

me@desktop:~$ cd ~
me@desktop:~$ mkdir Wybot
me@desktop:~$ cd Wybot
me@desktop:~$ ln -s ~/pywikipedia/families
me@desktop:~$ ln -s ~/pywikipedia/userinterfaces

이렇게 명령어를 입력합니다. 제 봇 이름이 Wybot 입니다. 그 부분은 자신의 봇 이름으로 고쳐주시구요.

그 다음에는 위에 윈도우 XP 용으로 설명할 때 언급한, user-config.py 파일을 만들어 주면 됩니다.

me@desktop:~$ cd ~/pywikipedia
me@desktop:~/pywikipedia$ gedit user-config.py

그럼 윈도우즈 XP 에서의 메모장과 똑같은 gedit가 뜹니다. 우분투용 메모장이 gedit입니다.

mylang='ko' 
usernames['wikipedia']['en']='Wybot'
usernames['wikipedia']['es']='Wybot'
usernames['wikipedia']['de']='Wybot'
usernames['wikipedia']['fr']='Wybot'
usernames['wikipedia']['it']='Wybot'
usernames['wikipedia']['ja']='Wybot'
usernames['wikipedia']['ko']='Wybot'
usernames['wikipedia']['nl']='Wybot'
usernames['wikipedia']['pl']='Wybot'
usernames['wikipedia']['pt']='Wybot'
usernames['wikipedia']['ru']='Wybot'
usernames['wikipedia']['zh']='Wybot'
console_encoding = 'utf-8'

저는 이렇게 해줬구요. 그러니까 각 언어판에 Wybot으로 가입이 되어 있어야 합니다.

만약, 봇용 계정을 만들어 놓은 곳이 한국어판 뿐이라면, 아래와 같겠죠.

mylang='ko' 
usernames['wikipedia']['ko']='Wybot'
console_encoding = 'utf-8'

이제 설정이 모두 끝났습니다. 실행만 남았군요. 일단 로그인 부터 해야죠?

me@desktop:~$ cd ~/Wybot
me@desktop:~/Wybot$ python ~/pywikipedia/login.py

이렇게 하면 이제 로그인이 됩니다. 왜 항상 ~/Wybot 디렉토리로 가서 저렇게 복잡하게 실행해줘야 하는가? 그걸 제가 알면 프로그래머 했죠. ^^

저는 다른 언어판도 동시에 봇이 수정할 수 있도록 전부 로그인을 합니다.

me@desktop:~$ cd ~/Wybot
me@desktop:~/Wybot$ python ~/pywikipedia/login.py -all

로그인 되셨다구요?

그럼 인터위키 봇을 돌리시면 됩니다.

me@desktop:~$ cd ~/Wybot
me@desktop:~/Wybot$ python ~/pywikipedia/interwiki.py -start:가나다라 -autonomous

아~ 정말 잘돌아갑니다. 으히히~

me@desktop:~$ cd ~/Wybot
me@desktop:~/Wybot$ python ~/pywikipedia/welcome.py

우와...윈도우 XP에서는 계속 에러나던 welcome.py 봇도 정말 잘 돌아갑니다. 사용자:풀빵님이 수정하신 건데, 제가 원본 프로그램을 어디다 업로드 해 놓겠습니다. 웰컴봇은 간단한 봇이죠. 새 사용자 토론란에 환영합니다 틀을 자동으로 붙여주는 봇이에요. 인사용 봇이죠. ^^


아, 봇 프로그램이 매일 업데이트 됩니다. 매일 시작하기 전에 아래를 실행해 주세요. 자동 업데이트 기능입니다.

me@desktop:~$ cd ~/pywikipedia
me@desktop:~/pywikipedia$ svn update

사용예제[편집]

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

한 번에 암호 다 입력하기[편집]

login.py -all -pass

봇 도움말 목록[편집]


주석[편집]

참고 항목[편집]

영어 위키백과에서 봇을 이용하려면, 반드시 이 문서에 자신의 봇 이름을 추가해야만 접속이 된다.
따로 봇 사용허가가 없이 그냥 등록하는 경우라면 without flag, 즉 비공식적인 봇 명단에 추가하면 된다.