コンテンツにスキップ

Help:Pywikipediabot

使

ウィキペディア日本語版ヘルプページです。


pywikipediabotを準備するのに手助けがほしいなら#wikipedia-ja-bot接続(詳しくはWP:CHATを参照) にくるかpywikipediabot mailing listを使ってください。
pywikipediabot

Pywikipediabot (Python Wikipedia Robot Framework) BotPythonBot使

セットアップ

Pythonのインストール


pywikipedia使Python2.4Python2.32.3201113

PythonUnixLinuxMacWindows使

WindowsActivePython便

UnixPythonUnixPythonPython

MacMac OS X使

https://www.python.org/downloads/ 

pywikipediaのダウンロード


PyWikipediaBot PyWikipediaBot Nightliespywikipedia - The packagesSourceforge便

Mac OS X"Check out"

SVNを使ったダウンロード


SVN便SVN使UnixSVNWindows TortoiseSVNMicrosoft Windows 764Mac OS X

Unix使Bot使

上のコマンドを実行すると、カレント作業ディレクトリ(Unixではpwdコマンドか変数$PWDで確認、Cygwinなど他の環境では環境設定で確認できます)に「pywikipedia」という名前で新しいディレクトリが作成されます。

コマンドラインを使ってダウンロードしたファイルを後日アップデートするには、作業ディレクトリをpywikipediaに移動してから、以下を打ちます。

$ svn update

TortoiseSVNなど、コマンドラインツール以外では必要な情報はリポジトリのパスのみです:http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia/

Botのメーリングリスト

Botメーリングリストに登録するのは、良い考えでしょう(こちらを参照)。Botソフトウェアのファイルが更新されるたびにリストにメールが送られるので、新しいバージョンにアップデートする必要があるかどうか確認できます。

アカウント取得

ボットの運用条件や注意事項については Wikipedia:Bot を参照してください。

大規模な編集を行う場合は、Botのアカウントは通常の利用者と区別するため、専用のアカウントを取得しなければなりません。これは、Botフラグを付与することで最近更新されたページからBotの編集を隠すためです。ウェブブラウザを使ってあなた自身が手動で取得してください。利用者名は、通常「bot」の文字が後ろに付けられることが推奨されます。パスワードはあなた自身のアカウントと別のものがよいでしょう。

user-config.py の設定


 config.py SVN user-config.py user-config.py 

アカウントに関する設定

以下の節では、アカウントに関する設定について説明しています。なお、testfamily.py というプログラムがある場合は、実行することで簡易設定を行うことができます。(説明省略)

ウィキペディアの場合

メモ帳などのテキストエディタを開きます。

以下のように打ちます:

 mylang = 'xx'

xx"ja"

user-config.pypy

-lang使

user-config.pyBot

ExampleBotBotuser-config.py
 usernames['wikipedia']['ja'] = u'ExampleBot'

'u'Unicode Python 

wiki
 usernames['wikipedia']['de'] = u'BeispielBot'
 usernames['wikipedia']['en'] = u'ExampleBot'
 usernames['wiktionary']['de'] = u'BeispielBot'

管理者権限が必要なスクリプト(speedy_delete.py、redirect.py brokenなど)は、以下のように管理者権限を持つアカウントを追記します。

 sysopnames['wikipedia']['ja'] = u'SysopName'
ウィキペディア以外のウィキサイトの場合

 


mylang = 'xx'

xx"ja" 


family = 'sitename'

"sitename"

wiktionarywikibookswikiquotewikitravelfamilies

Wikimedia Commons"mylang""family"'commons'
 mylang='commons'
 family='commons'
 usernames['commons']['commons']='UserBot'
familyフォルダにウィキサイトが無い場合

 family  _family.py meta:Pywikipedia bot on non-Wikimedia projects

 user-config.py 

 Memory Alpha (memoryalpha)  (en) ExampleBotBot:
 mylang = 'en'
 family = 'memoryalpha'
 usernames['memoryalpha']['en'] = u'ExampleBot'

このテキストファイルをuser-config.pyという名前で、ダウンロードしたpyファイルと一緒のフォルダに保存します。

その他の設定


user-config.py  put_throttle = 30 PywikipediaBot10

106Bot6060maxthrottle = 120 120

BotMonobook 

命令実行のショートカット作成(Windowsユーザ向け)


PywikipediabotBotcd

WindowsBot

(一)pywikipedia

(二) -> 

(三)"cmd.exe"

(四)"Pywikipediabot"

(五)

(六)Pywikipediabot

(七)

PythonPythonC:\PythonWindows XPPath;C:\Python

使い方


Bot使BotOS使

Windowscmd.exe使

Mac/Applications/UtilitiesTerminal.app使

LinuxUnixOSgnome-terminalKonsolexterm使

Pywikipediabot
cd pywikipedia

動作確認


使 MediaWiki 

login.py
user-config.pyBot

python login.py


使
Checked for running processes. 1 processes currently running, including the current process.
Password for user XXXXXX on wikipedia:ja:
Logging in to wikipedia:ja as XXXXXX
WARNING: Your account on wikipedia:ja does not have a bot flag. Its edits will be visible in the recent changes and it may get blocked.
Should be logged in now

python login.py -test


調

python test.py



You are logged in on wikipedia:ja as XXXXXX.


Wikipedia:

python clean_sandbox.py



Sleeping for 7.1 seconds, 2009-02-17 22:49:24
Changing page [[Wikipedia:]]
Done.

使用申請

Botを運用するためには、コミュニティに許可を得る必要があります。許可の基準の厳しさはプロジェクトによって異なります。何の許可もなく自由に運用できるプロジェクトもありますが、ウィキペディア日本語版では、試験運用を行い有用で無害であることを証明して許可を得る必要があります。

スクリプト

現在利用できるBotのリストと解説ページへのリンク (mediawiki):

  メインBotスクリプト   その他のBotスクリプト   補助プログラム  



コマンドライン引数


BotBot

-help

BotBot

-lang:xx

xxuser-config.py

-family:xyz

wikipediawiktionarywikitraveluser-config.py

-log

logs

-log:xyz

xyz使

-nolog



-putthrottle:nn

Bot0

python [].py -family:wikipedia[]Botuser-config.py

バグ報告




使PyWikipediaBotSVN

使Python (python -v) WindowsLinuxMac OS XOS





使



SourceForgebug tracker

開発

もし、あなたがBotに、従来のBotには無い新機能を付けたいと思ったなら、誰かプログラマーに頼んでその機能を実装して貰うことが出来ます。或いは自分でBotを改造出来るなら、その方が良いでしょう。Pythonは良くできたプログラミング言語ですし、習得は難しくありません。あなたも挑戦してみましょう。

Tips

このHelp:Pywikipediabotのページと、wikipedia.pyのページには、あなたが自分のBotを書くに当たって、とても基本的なヒントの数々が記されています。

  • あなたのBotのuser-config.pyの設定を確認してください(#Configuring for Wikipediaも参照してください)
  • 以下のようにしてpywikipedia frameworkをインポートしてください:。
import wikipedia
  • ページを取得するには次のようにしてください。pageNameのところには例えば、"Wikipedia:Bots"や"India"が入ります。
site = wikipedia.getSite()
page = wikipedia.Page(site, u"pageName")
text = page.get(get_redirect = True)
  • ページを書き換えるには次のようにします。
page.put(u"newText", u"Edit comment")

pywikipediareplace.pypywikipedia

使Pagewikipedia.py

Botbasic.py使

 ()pagegenerators.pyCategoryPageGenerator使Category:
import catlib
import pagegenerators
site = wikipedia.getSite()
cat = catlib.Category(site,'Category:プログラミング')
gen = pagegenerators.CategorizedPageGenerator(cat)
for page in gen:
  # この部分で各ページに対して何か処理を行います。例えば次のように。
  text = page.get()

貢献するには


Bot

(一)SVN

(二)"====="grep

(三)

$ svn diff > svn.diff


diff"?"

Pywikipediabotsvn.diffPywikipedia bug tracking system

複数のアカウントでの実行

python wikipedia botを複数のアカウントで実行したくなることもあるでしょう。それには2つの方法があります。

Separate pywikipedia distributions

One can install completely separate instances of pywikipedia in different directories (1 for each account) and have diferent user-config.py files in each of them. However, when updating the installation via SVN, one needs to run svn update on each folder separately. Also, every installation takes some disk space, which might be a problem on accounts with limited quota.

Let's assume user foo has a current SVN working copy of pywikipedia in /home/foo/pywikipedia. For each of the accounts, he creates a separate directory:

foo@bar:~$ mkdir foobot
foo@bar:~$ cd foobot

Pywikipedia needs then some symlinks to the main code tree created in the working directory:

foo@bar:~/foobot$ ln -s ~/pywikipedia/families
foo@bar:~/foobot$ ln -s ~/pywikipedia/userinterfaces

Then, user-config.py for this account must be created as described in Configuration section above.

Finally, the bot must be logged in the usual way:

foo@bar:~/foobot$ python ~/pywikipedia/login.py

The working directory is ready. The scripts will however require a slight modification to run (the path to the pywikipedia tree must be added to Python's path).

import sys, os
sys.path.append(os.environ['HOME'] + '/pywikipedia')
import wikipedia

That's all. Updating to the newest version of pywikipedia on all account at once is now a matter of running svn update only in the ~/pywikipedia directory.

Botとプロキシ

ここ(オランダ語)に回避方法の草案が多分あるでしょう。

関連項目

参考