Wikipedia:井戸端/subj/Botの作り方、使い方

Bot の使い方 編集

Bot ってどうやって作るのでしょうか。 Wikipedia:Bot にも書かれていないし、 m:MediaWiki よくある質問と回答集#botを実行するにはどうすればいいですか? を見ると、 「m:Using the python wikipediabot を見ろ」 となっていますが、英語のためまったく理解できません(翻訳サイトを使用してみましたがやはり意味が分かりません)。なんか、 Python を使用するとかどうこう書かれていますが...。 Wikipedia だけのことではないのでここに書くのは本当は正しくないと思いますが、調べてもよく分からなくて Wikipedia 自体のことにも関係するのでできるならお教え願えれば幸いです。日本語情報で詳しく書かれているサイトやページなどがありましたらそちらを教えていただけるだけで結構です。 --Mzm5zbC3 2006年11月25日 (土) 14:34 (UTC)[返信]

Botで何をしたいのでしょうか?何よりも処理したい用途によると思いますが。ボット自体は、WWW、特にHTTPの仕様さえ分かれば、それらの英語ページを理解できなくても、作れると思います。ちなみにPython云々はただの参考ページなので必須情報ではありません。 Bookmarklet, User-script等でもやりたい処理ができる場合もあると思いますので、用途・目的のあたりから確認するのが良いと思いますよ。--Masao 2006年11月25日 (土) 17:31 (UTC)[返信]

返事の方、ありがとうございます。はい、実際の所は自分のサイトに設置した MediaWiki で サンドボックス を定期的に初期化している ちーぼっと のような定期的に動作させる(?) Bot を実行したいんです。また、(使用するかどうかは別として)機能がある以上、今後のために覚えておきたいという興味本位的な部分もあります。というか、 MediaWiki 自体の機能ではないんでしょうか。その辺りの時点でよく分からないのです。本当は MediaWiki のサイトの方で質問すべき内容なんですが、英語での質問は到底出来ないので...。(^_^; --Mzm5zbC3 2006年11月25日 (土) 18:21 (UTC)[返信]
Bot は Bot で MediaWiki とは完全に独立のプログラムです。その辺に落ちている既製品(既に python ベースの wikipediabot の話をされてますね)を適当に見つけてきて使い方を調べるか、Python やら perl やらの適当な言語を勉強して Bot を組むかいずれかです。定期的にという部分は、windows のタスクや Unix-like OS の cron のようなスケジューラーで定期的に起動させればいいので、bot の動作としては「特定のページを開いて決まった書き込みをする」という動作をさせればいいということになりますね。いぁ、あたしゃ組めやせんけどねぇ。 --Lem 2006年11月26日 (日) 14:34 (UTC)[返信]
返事をありがとうございます。あー、そうなんですか。その時点で勘違いをしていました。よく考えてみると PHP や CGI はブラウザなど外部からリクエストを受けたときに動作するものであって(スクリプト自体を単体で動作させた場合は別ですが)、定期的に動作させるのは常駐やサービス(デーモン)などで動かさないといけないですしね。ということは Bot を動かしている人たちって動作させているコンピュータは各自自分の持ち物でそのコンピュータの電源を入れっぱなしにしていると云うことでしょうか。あと、よく分からないのが特定ユーザーとして投稿するという部分なのですが...。これは Cookie 情報などを HTTP ヘッダに含めるなどで対応できるんでしょうか。 --Mzm5zbC3 2006年11月26日 (日) 15:38 (UTC)[返信]
PHPでもCLI版があるのでbotは作れますよ。botをある時刻に確実に動かさなければならないのでしたら常時起動のマシンが必要ですが、そうでなければ時々手動で起動というものもできますし、anacron などを使うこともできます。まあほとんどの方は常時起動していると思いまずが、必ずしも常時起動が必要なわけではありません。mediawikiを動かしているサーバがあるのであれば同じサーバで動かすこともできます。CookieなどについてはHTMLのソースを見ればわかると思いますので勉強してみてください。HTTPのCGIベースですのでソースからわからないことは基本的にありません。--Suisui 2006年11月28日 (火) 03:11 (UTC)[返信]
ありがとうございます。おかげさまで、だいぶ分かってきました。なお、このサイトのサンプルを改造すれば Perl でもできそうなので頑張ってみます。 Cookie についてもブラウザの送信している情報をそのままヘッダとして流してみたらログインしている状態として認識されたようなので、大丈夫です。サーバについては個人運営の無料レンタルサーバなのでサーバ機自体にそういうプログラムを常駐させることは好ましくないかなと考えています。最後にお返事を下さった皆様、本当にありがとうございました。 --Mzm5zbC3 2006年11月28日 (火) 15:15 (UTC)[返信]