안내서:Pywikibot/PAWS

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Pywikibot/PAWS and the translation is 59% complete.

Outdated translations are marked like this.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎čeština • ‎Ελληνικά • ‎русский • ‎українська • ‎اردو • ‎中文 • ‎日本語 • ‎한국어
더 자세한 사항은 Wikitech:PAWS에서 확인하세요.

이 문서는 PAWS(Pywikibot: A Web Shell)를 이용하여 위키미디어 실험실 환경의 노트북을 이용한 Pywikibot 의 빠른 대화형 개요를 제공합니다.

PAWS 단말기는 크롬 기반의 환경에서만 복사 및 붙여넣기을 지원함에 유의하세요. (구글 크롬 및 오페라, 사파리는 괜찮습니다.) 만일 다른 브라우저를 사용하고 있다면, 이 연습문에서 언급된 명령어를 수동으로 입력해야 합니다. 내용 안에 명령어가 들어있는 bash 파일을 만들거나 단말기 내에 bash file.sh를 호출할 수도 있습니다.
경고 경고: All notebooks and terminals in PAWS are subject to termination without notice. You are encouraged to run your task on other places (such as Toolforge) if your task lasts for more than hours.

위키미디어 계정 만들기

To follow this walk-through, you only need a Wikipedia/Wikimedia account. Use Special:CreateAccount to create one.

Once you have created an account, please visit https://test.wikipedia.org/ and check that your username appears in the top right corner (this works around T120327).

노트북으로 접속하기

노트북에서 진행을 시작하려면, 여기로 가세요.

‘Sign in with MediaWiki’를 클릭하고 나서 ‘OAuth 이용 인증’에 동의하는지 물어볼 때 ‘허용합니다’를 클릭합니다. PAWS에 처음 접속하려면, 서버 생성이 필요합니다. 초록색 ‘Start my Server’ 버튼을 클릭합니다. 새로운 서버가 시작되려면 몇 분 정도 기다리는 것이 보통입니다.

완료되었다면, https://paws.wmflabs.org/paws/user/<username>/tree처럼 URL에다가 넘겨주기가 됩니다.

단말기 시작하기

새로운 대화형 단말기를 시작하기 위해,

  1. PAWS 대문에 가서
  2. ‘New’를 오른쪽 버튼으로 클릭하고
  3. ‘Terminal’을 선택합니다.

이러면 리눅스‘$’프롬프트와 함께 https://paws.wmflabs.org/paws/user/<username>/terminals/1 URL의 새로운 창이 열립니다.

이 URL을 즐겨찾기로 지정할 수 있으며, 또한 브라우저를 닫거나 혹은 컴퓨터가 멈춘 이후에도 언제든 단말기로 복귀합니다.

이 단말기는 모방기가 아닙니다. 실제 배시 셀도커 용기에 있는 실제 리눅스 설치의 일부분으로, 그렇기에 어떠한 배시 명령어든 쓸 수 있고, 또한 설치한 리눅스에서 사용가능한 어떠한 명령어도 쓸 수 있습니다.

사용가능한 일부 명령어를 보려면, ls /bin/을 쓰세요.

$ ls /bin/
bash          cat            domainname  journalctl  mkdir          pwd         stty                            tar           zcmp
unzip2       chacl          echo        kill        mknod          rbash       su                              tempfile      zdiff
../..
$ ls /usr/bin/
2to3-3.4                 dvipdf                     lcf                         printf               systemd-path                         
X11                      dwp                        ld                          prlimit              systemd-run
../..


위키에 로그인하기

이는 서버 내에 계정이 만들어질 것이고 명령줄에서 로그인이 허가됩니다. 아래의 명령어는 연습위키에 접속할 수 있음을 보여줍니다. OAuth를 이용한다면, 비밀번호를 입력할 필요가 없습니다.

$ pwb.py login
Logging in to wikipedia:test as <username>
Logged in on wikipedia:test as <username>.

$HOME 디렉토리(/home/paws) 내에 ‘user-config.py’라는 이름의 파일을 만들고 ‘mylang ’ 및 ‘family’ 변수를 추가한다면 pywikibot에서 다른 위키로 연결할 수 있습니다:

mylang = 'test'
family = 'wikipedia'

문서 만들기

문서를 만들려면, 단말기에 사용자 이름과 ‘<username>’을 대신하여 아래의 명령어를 입력하고, 바뀜을 즉시 수락하려면 ‘Y’를 누르세요.

$ pwb.py add_text -up -talk -page:"User talk:<username>" -text:"Hello. ~~~~"
Loading User talk:<username>...

>>> User talk:<username> <<<
@@ -0,0 +1 @@
+ Hello. ~~~~

Do you want to accept these changes? ([Y]es, [N]o, [a]ll, open in [b]rowser): Y
Page [[User talk:<username>]] saved

위키를 편집했습니다. 웹 브라우저 상에서 https://test.wikipedia.org/wiki/User_talk:<username>를 열어 바뀜을 봅시다.

‘-help’ 명령줄 옵션과 이러한 명령줄 스크립트 각각에 대해 자세히 볼 수 있습니다.

$ pwb.py add_text -help
...

문서 꺼내오기

많은 문서를 가져오는 것은 ‘listpages’ 명령어로 합니다.

이전 문단에서 만들었던 문서의 내용을 가져오려면, 다음 명령어를 입력하세요:

$ pwb.py listpages -page:"User talk:<username>" -save
   1 <username>
Saving User talk:<username> to /home/paws/User_talk_<username>
1 page(s) found

지금 만일 PAWS 파일 목록에 가려면, 문서가 현재 저장되어 있어야 합니다.

실제 스크립트 예시

위키백과 상에서 사용된 웹사이트가 URL를 바꾼다면 위키백과 상의 해당 링크는 낡게 되고, 만일 웹사이트가 오래된 URL에서 새 URL로 넘겨주기되지 않았다면 깨진 링크가 될 수도 있습니다. 가령, 예를 들어 브리태니커 백과사전은 http://www.britannica.com/EBchecked/media/에서 http://www.britannica.com/topic/[topic name]/images-videos/*로 문서를 이동한 것과 같이 링크를 바꿨습니다. 여기에서 영어 위키백과 상의 오래된 URL의 사용 목록을 찾아볼 수 있습니다. 이 모든 링크를 수작업으로 갱신하는 것은 매우 많은 시간이 걸릴 것입니다. 다행스럽게도 브리태니커 백과사전은 오래된 URL에서 새 URL로의 넘겨주기를 유지하고 있고, 그래서 이를 즉각적으로 고칠 필요는 없습니다.

For example, Encyclopedia Britannica (EB) has changed their links, such as moving pages from http://www.britannica.com/EBchecked/media/ to http://www.britannica.com/topic/[topic name]/images-videos/*. You can find the list of usages of the old URL on English Wikipedia at https://en.wikipedia.org/wiki/Special:LinkSearch/http://www.britannica.com/EBchecked/media . Updating all those links manually will be very time consuming. Thankfully EB has maintained redirects from their old URLs to the new URLs, so this does not need to be fixed immediately.

간단한 예로는, 영어 위키백과는 최근 http://www.britannica.com/EBchecked/ 대신에 http://britannica.com/EBchecked/ 링크를 포함하고 있습니다. 즉, ‘www.’ 하위 도메인은 URL 상에서 사라집니다.

최근 영어 위키백과에는 15건의 사례가 있습니다.

다른 언어로 된 위키백과 또한 이러한 문제를 지니고 있습니다. 가령, 독일어 위키백과 상에 1건의 사례가 있습니다.

이 링크를 고치기 위해, 우리는 Pywikibot replace.py 스크립트를 사용할 수 있습니다. 이 견본에서 우리는 영어 위키백과의 자동 편집에 대한 엄격한 규칙이 있으므로, 위키에 작성하는 것을 막기 위해 ‘-simulate’ 인수를 사용할 것입니다.

먼저 http://britannica.com/EBchecked/에 연결된 모든 문서를 기재하세요.

$ pwb.py listpages -lang:en -weblink:"britannica.com/EBchecked/"
   1 Bhatner fort
   2 Mohammad Ishaq Khan
   3 Fringe theories/Noticeboard/Archive 7
   4 El Riego phase
   5 Catalonia/Archive 4
   6 Stephen I of Hungary
   7 Stephen I of Hungary/Archive 1
   8 Väinö Tanner
   9 Tokaji
  10 Transylvania/Archive5
  11 Hungarians in Romania
  12 Transylvania
  13 Uttarakhand
  14 Françoise Giroud
14 page(s) found

이제 우리는 이 문서들이 실제로 문서 내에 실질적인 URL을 가지고 있는지 확인합니다. 즉, 여기에는 틀은 사용하고 있지 않습니다.

$ pwb.py listpages -lang:en -weblink:"britannica.com/EBchecked/" -grep:"britannica.com\/EBchecked"
   1 Bhatner fort
   2 Mohammad Ishaq Khan
   3 Fringe theories/Noticeboard/Archive 7
   4 El Riego phase
   5 Catalonia/Archive 4
   6 Stephen I of Hungary
   7 Stephen I of Hungary/Archive 1
   8 Väinö Tanner
   9 Tokaji
  10 Transylvania/Archive5
  11 Hungarians in Romania
  12 Transylvania
  13 Uttarakhand
  14 Françoise Giroud
14 page(s) found

이제 ‘replace’를 사용하여 빠진 ‘www.’를 추가하세요.

$ pwb.py replace -lang:en -simulate -weblink:"britannica.com/EBchecked/" -grep:"britannica.com\/EBchecked" "http://britannica.com/EBchecked/" "http://www.britannica.com/EBchecked/"
The summary message for the command line replacements will be something like: Bot: Automated text replacement  (-http://britannica.com/EBchecked/ +http://www.britannica.com/EBchecked/)
Press Enter to use this automatic message, or enter a description of the
changes your bot will make: 
Logging in to wikipedia:en as <username>
Retrieving 14 pages from wikipedia:en.
Retrieving 14 pages from wikipedia:en.


>>> Stephen I of Hungary <<<
@@ -47 +47 @@
- Stephen's birth date is uncertain because it was not recorded in contemporaneous documents.{{sfn|Györffy|1994|p=64}} Hungarian and Polish chronicles written centuries later give three different years: 967, 969 and 975.{{sfn|Kristó|2001|p=15}} The unanimous testimony of his three late 11th-century or early 12th-century [[hagiographies]] and other Hungarian sources, which state that Stephen was "still an adolescent" in 997,<ref>''Hartvic, Life of King Stephen of Hungary'' (ch. 5), p. 381.</ref> substantiate the reliability of the later year (975).{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}} Stephen's ''[[Life of Saint Stephen, King of Hungary (Vita minor)|Lesser Legend]]'' adds that he was born in [[Esztergom]],{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}}<ref name=Britannica>{{cite encyclopedia|title=Stephen I|url=http://britannica.com/EBchecked/topic/565415/Stephen-I|encyclopedia=[[Encyclopædia Britannica]]|publisher=Encyclopædia Britannica, Inc.|year=2008|accessdate=2008-07-29}}</ref> which implies that he was born after 972 because his father, [[Géza, Grand Prince of the Hungarians]], chose Esztergom as royal residence around that year.{{sfn|Györffy|1994|p=64}} Géza promoted the spread of Christianity among his subjects by force, but never ceased worshipping pagan gods.{{sfn|Kontler|1999|p=51}}{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}} Both his son's ''[[Life of Saint Stephen, King of Hungary (Vita maior)|Greater Legend]]'' and the nearly contemporaneous [[Thietmar of Merseburg]] described Géza as a cruel monarch, suggesting that he was a despot who mercilessly consolidated his authority over the rebellious Hungarian lords.{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}}{{sfn|Bakay|1999|p=547}}
+ Stephen's birth date is uncertain because it was not recorded in contemporaneous documents.{{sfn|Györffy|1994|p=64}} Hungarian and Polish chronicles written centuries later give three different years: 967, 969 and 975.{{sfn|Kristó|2001|p=15}} The unanimous testimony of his three late 11th-century or early 12th-century [[hagiographies]] and other Hungarian sources, which state that Stephen was "still an adolescent" in 997,<ref>''Hartvic, Life of King Stephen of Hungary'' (ch. 5), p. 381.</ref> substantiate the reliability of the later year (975).{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}} Stephen's ''[[Life of Saint Stephen, King of Hungary (Vita minor)|Lesser Legend]]'' adds that he was born in [[Esztergom]],{{sfn|Györffy|1994|p=64}}{{sfn|Kristó|2001|p=15}}<ref name=Britannica>{{cite encyclopedia|title=Stephen I|url=http://www.britannica.com/EBchecked/topic/565415/Stephen-I|encyclopedia=[[Encyclopædia Britannica]]|publisher=Encyclopædia Britannica, Inc.|year=2008|accessdate=2008-07-29}}</ref> which implies that he was born after 972 because his father, [[Géza, Grand Prince of the Hungarians]], chose Esztergom as royal residence around that year.{{sfn|Györffy|1994|p=64}} Géza promoted the spread of Christianity among his subjects by force, but never ceased worshipping pagan gods.{{sfn|Kontler|1999|p=51}}{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}} Both his son's ''[[Life of Saint Stephen, King of Hungary (Vita maior)|Greater Legend]]'' and the nearly contemporaneous [[Thietmar of Merseburg]] described Géza as a cruel monarch, suggesting that he was a despot who mercilessly consolidated his authority over the rebellious Hungarian lords.{{sfn|Berend|Laszlovszky|Szakács|2007|p=331}}{{sfn|Bakay|1999|p=547}}

Do you want to accept these changes? ([y]es, [N]o, [e]dit, open in [b]rowser, [a]ll, [q]uit): N

...

PAWS 및 색상을 지원하는 단말기에서 바뀜의 차이는 초록색 글자로 ‘www.’가 추가되어 보여질 것이고, 이는 제안된 바뀜을 찾기 쉽게 만들 것입니다.

Pywikibot 내부

경고 경고: 파일은 공개되므로, 서버의 파일 안에 비밀번호를 적지 마세요!

다음은 PAWS 파이썬의 시즌을 사용합니다.

  1. PAWS 대문에 가서
  2. ‘New’를 오른쪽 버튼으로 클릭하고
  3. ‘Python 3’을 선택합니다.

이러면 새로운 창이 열립니다.

In the text box, enter the following and in the Cell menu select 'Run' (or pressing shift+enter to run).

import pywikibot

A new text box will appear below. Run the following to create an APISite object connected to https://test.wikipedia.org/:

site = pywikibot.Site('test', 'wikipedia')

Describe "site" by entering it into the new text box and selecting "Run".

site

It should show

 Out[3]: APISite("test", "wikipedia")

Create a page object:

page = pywikibot.Page(site, 'test')

Check it exists by running:

page.exists()

It should output

 VERBOSE:pywiki:Found 1 wikipedia:test processes running, including this one.
 Out[5]: True

Show the text on the page:

page.text

Change the page text in the object:

page.text = 'Hello world'

Save the page to the wiki:

page.save()

The response should be:

  Page [[Test]] saved
  INFO:pywiki:Page [[Test]] saved

The interactive Python 3 notebook allows many lines to be run together. The above could be put into one text box and Run

import pywikibot

site = pywikibot.Site('test', 'wikipedia')
page = pywikibot.Page(site, 'test')

page.text = 'Hello world!'
page.save()

The log of your interactive Python session can be saved or downloaded for future reference.

PAWS 내 온라인 문서에 접근하기

Pywikibot documentation may be found at https://doc.wikimedia.org/pywikibot/. It is primarily sourced from docstrings, which can be loaded in the interactive Python 3 notebook using the Python built-in function help().

For example, to look at the arguments for the save method above, run either:

help(page.save)

또는

help(pywikibot.Page.save)

Pywikibot 스크립트 편집하기

Pywikibot 라이브러리 및 스크립트는 /srv/paws에 위치하고 있으며, 읽기 전용입니다. 설치된 Pywikibot 라이브러리는 PAWS 내에서 수정할 수 없습니다.

스크립트는 내 PAWS 홈으로 복사한 후 수정해야 합니다.

예를 들어, 수정된 ‘checkimages.py’를 실행하려면:

  1. 터미널 안에서 cp /srv/paws/pwb/scripts/checkimages.py ~를 입력합니다.
  2. 브라우저 안에서 [$paws PAWS 홈]에 가서 checkimages.py를 클릭합니다.
  3. 브라우저 안에서 파일을 수정할 수 있습니다. 코드를 수정하세요: 가령, 1775줄의 start = time.time() 코드 뒤에 새 1776줄에 내 이름을 추가합니다: print("MYNAME의 판.")
  4. 인터페이스 편집에서 파일 메뉴에서 저장을 눌러 편집본을 저장합니다.
  5. 터미널 안에서 pwb.py ~/checkimages.py -simulate를 입력합니다.
  1. In the terminal, enter cp /srv/paws/pwb/scripts/checkimages.py ~
  2. In a browser, go to your PAWS home and click on the file checkimages.py.
  3. In the browser, you can edit the file. Edit the code -- for instance, just after the start = time.time() code on line 1775, add a new line 1776 that will print out your name: print("MYNAME's version.")
  4. In the editing interface, use the File menu and click Save to save your modifications.
  5. In the terminal, enter pwb.py ~/checkimages.py -simulate

같이 보기

  • 한 사용자의 PAWS 요약(예: API 및 데이터베이스 접근)


If you need more help on setting up your Pywikibot visit the #pywikibot IRC channel connect or pywikibot@ mailing list.