Help:Pywikipediabot/replace.py

In other languages: en - it - ja


replace.py は、直接文字の置換を行う汎用性の高い Bot スクリプトです。XMLのダンプデータ、リストファイル、指定されたページに対して処理を行います。

このスクリプトの使用になれていない場合は、こちらを参照してください。基本的な事項が書かれています。

引数[編集]

処理対象を指定する引数
引数 説明
-xml ローカルのXMLダンプから情報を取得します(Wikipedia:データベースダウンロード を参照)。例、「-xml:ファイル名」
-page 特定のページを対象に追加します。複数回使用できます。例、「-page:卵かけご飯」。
-cat 指定したカテゴリの全ページを対象に追加します。例、「-cat:主要カテゴリ」。
-subcat 指定したカテゴリとサブカテゴリ以下の全ページを対象に追加します。例、「-subcat:主要カテゴリ」。
-uncat カテゴリ未導入のページを対象に追加します。
-uncatcat カテゴリ未導入のカテゴリを対象に追加します。
-uncatfiles カテゴリ未導入の画像を対象に追加します。
-file 指定したテキストファイルから対象リストを読み込みます。例、「-file:list.txt」。なお、このテキストファイルは使用する文字コード(例えばUTF-8)で保存しておかなければなりません。
-filelinks 指定したメディアファイルを使用したページを対象に追加します。例、「-filelinks:画像です.jpeg」
-yahoo Yahoo検索で見つかったページを対象に追加します。処理は、Pythonモジュールの「pYsearch」に依存します。使用するには、config.py の yahoo_appid で設定が必要です。
-google Google検索で見つかったページを対象に追加します。使用するには、config.py の google_key で設定が必要です。
-search メディアウィキの検索で見つかったページを対象に追加します。対象は、全名前空間です。
-interwiki
-withoutinterwiki 言語間リンクがないページを対象に追加します。例、「-withoutinterwiki:10」のように処理するページ数を指定できます。
-links 指定したページ内でリンクされているページを対象に追加します。例、「-links:トイレ」。
-new 新しいページの60ページを対象に追加します。「-new:100」のようにページ数は変更できます。
-ref 指定したページにリンクしたページを対象に追加します。例、「-ref:ツル」(特別:Whatlinkshere/ツル を参照)。なお、やや古いバージョンにはバグがあるので正しく動作しません。最新版で実行してください。
-start 指定したページからASCII順に処理することを指定します。例、「-start:カメ」(特別:Allpages/カメ を参照)。
-prefixindex 指定した文字で始まるページを対象に追加します。名前空間も指定できます。例、「-prefixindex:Wikipedia:あいさつ」(特別:Prefixindex/Wikipedia:あいさつ を参照)。
-transcludes 指定したテンプレートにリンクしたページを対象に追加します。例、「-transcludes:Aimai」(特別:Whatlinkshere/Template:Aimai を参照)。
-unusedfiles 使われていない画像を対象に追加します。例、「-unusedfiles:10」のように処理するページ数を指定できます。
-unwatched
-usercontribs 指定した利用者の投稿記録を対象に追加します。例、「-usercontribs:Example」。
-weblink 指定したURLへの外部リンクをしているページを対象に追加します。例、「-weblink:google.co.jp」。
その他の引数
引数 説明
-always 処理毎の確認メッセージを非表示にします。
-regex 正規表現を有効にします。この引数を指定しないなら、単純な文字置換のみの処理がなされます。
-nocase 正規表現で大文字と小文字を区別しなくする。
-dotall ドット(.)が改行を含むすべてのキャラクタにマッチします。このオプションを指定しない場合、ドットは改行にマッチしません。
-multiline 表現 ^ と $ が、それぞれ各行の先頭と末尾にマッチするようになります。
-summary 要約欄に記述されるメッセージをオリジナルのものと置き換えます。例、「-summary:ボットですよ」。
-namespace 処理する名前空間の名前または変数を指定します。複数回使用できます。他の引数と組み合わせて使用します。ただ、-start 引数は、「-start:Category:カメ」のように指定しなければなりません。
-xmlstart (-xml 指定時のみ有効) XMLダンプから情報を取得する際、指定したページが現れるまでページをスキップします。
-addcat 対象ページすべてに指定したカテゴリを追加します。
-excepttitle 指定した文字列がタイトルに含まれるページを処理をスキップします。-regex 引数が指定されているなら、正規表現が有効になります。
-requiretitle 指定した文字列がタイトルに含まれるページのみ処理します。-regex 引数が指定されているなら、正規表現が有効になります。
-excepttext 指定した文字列が含まれるページの処理をスキップします。-regex 引数が指定されているなら、正規表現が有効になります。
-exceptinside
-exceptinsidetag
-fix あらかじめ定義されているタスクを実行します。タスクの詳細は fixes.py で定義されています。-fix を指定した場合、-regex や -nocase、通常の置換処理は無視されます。
-recursive 置換処理を再帰的に行います。無限ループを引き起こす可能性があるので注意してください。
-allowoverlap
その他 第1引数には置換対象の文字列、第2引数には置換する文字列を指定します。-regex 引数が指定されているなら、正規表現が有効になります。新旧文字列のペアは複数指定することができます。

すべての Bot で利用可能なグローバル引数

-lang:xx Bot を稼動させたいウィキの言語コードを設定します(日本語であれば "ja")。これはウィキメディア・コモンズのための "-lang:commons"を除く user-config.py(における言語コード)の設定をオーバーライドします。
-family:xyz Bot を稼動させたいウィキペディア、ウィクショナリー、ウィキメディア・コモンズ…といったウィキ・ファミリーを設定します。これは user-config.py における設定をオーバーライドします。
-help Bot の解説やコマンド引数などのヘルプ文書を表示します。
-log ログファイルの出力を有効にします。logs サブディレクトリに保存されます。
-log:xyz ログファイルをファイル名 xyz として出力を有効にします。
-nolog ログファイルの出力を無効にします(もし、user-config.py における設定が使用可能であれば)。
-putthrottle:n
-pt:n
動作間隔。Bot がページの編集を保存してから次の保存までの時間を秒数で指定します。

使用例[編集]

テンプレート指定の古い文法(例:{{msg:Stub}})を新しい文法(例:{{Stub}})に変更する:

   python replace.py -xml -regex "{{msg:(.*?)}}" "{{\1}}"

複数行にマッチさせる例:

   python replace.py -regex -start:! "First line\nSecond line" ""

ローカルのXMLダンプ foobar.xml から情報を取得し、"Errror" という typo を "Error"に修正する:

   python replace.py -xml:foobar.xml "Errror" "Error"

「John Doe」というページで、HTML タグを wiki 文法に変換する:

   python replace.py -page:John_Doe -fix:HTML

引数なしで bot を実行し、置換処理が必要になるたびに確認メッセージを表示させる:

   python replace.py -file:blah.txt

関連項目[編集]