pythonでtwitterのbotを作る
目次
- コードを置いておくフォルダを作る
- 書いて、試す
- 定期的に実行する
- 遊び方無限大
コードを置いておくフォルダを作る
面倒なのでC直下にコード置き場を作る。(あんまりいいことじゃない)
コマンドプロンプトで以下のコマンドを実行する。
mkdir c:\python
作ったフォルダに移動しておく。
cd c:\python
このコマンドプロンプトは後で使うのでとっておく。
書いて、試す
まずは基本的なコードを書いてみる。
先ほど作ったc:\pythonの下にtest.pyというファイルを作成して以下のコードを書く。
usernameとpasswordの部分はtwitterアカウントのユーザidとパスワードを入れます。
import twitter api = twitter.Api("username","password") api.PostUpdate("I am giiku")
保存したら、先ほどのコマンドプロンプトで以下のコマンドを実行。
python test.py
twitterを確認して、恥ずかしいポストがされていれば成功です。
恥ずかしいポストをしたくないかたは、PostUpdate("I am giiku")の「I am giiku」のところを好きな言葉にしておいてください。ただし半角英数に限る。
日本語を扱う方法は後で。
複数ある発言候補から一つ選んでポストする。
test.pyを変更する。
import twitter import random list = [ "naitomea" ,"daakunaito" ,"rusifaa" ,"jiendo" ] post = random.choice(list) api = twitter.Api("username","password") api.PostUpdate(post)
こんな感じ。"naitomea"の前にある空白はTabなので、Tabキーを一回押して入れる。pythonはTabが意味を持つのだが、詳しい話は他で調べてください。
やっぱり保存してコマンドプロンプトに以下を打ち込む。
python test.py
また恥ずかしいポストがされていたら成功。調子に乗って何回も実行すると、お前のタイムラインの闇の力が濃くなって最強になる。連続して実行しても反映されないときがあるが、それはtwitterの仕様で「同じ文面のポストは連続して投稿できない」というのにひっかかっている。listの中からランダムでポスト内容を選んでいるため、同じ文面が続けて出てしまう可能性があるからである。回避する方法はある。面倒だから書かないけど。
定期的に実行する
さて、とりあえず「用意した発言内容リストからランダムで選んでポストする」プログラムが出来た。しかし、このままでは手動で実行しない限り動かない。手動botである。それではbot作成者の方は一日中PCに張り付いて定期的にプログラムを実行しているのだろうか?当然違う。自動で定期的に実行してくれるツールがある。
unix/linux等ならcronというものがあるし、windowsにもatというものがあるが、ここは一つpycronを使ってみようと思う。
pycron
メニューの「Item」から「New」を選ぶと新しい予定作成画面が出る。
ここに実行させるプログラムと実行させる時間を設定すればいい。
pythonをインストールした場所:C:\python26
自分で書いたコードの場所:C:\python\test.py
実行させたい時間:1分毎
だとすると以下の感じで良い。
ここで入力内容が正しいか確かめるために「Test executior」をクリック。
一瞬DOS窓が出て以下のダイアログが出ればオッケー。何も出ない場合は間違っているので見直そう。
これでOKを押すとタスク(実行予定)が出来る。次にこれを設定ファイルとして書き出す。
メニューの「File」から「Save」を選ぶ。おめでとう!これで貴方のタイムラインは一分ごとに暗黒の力に包まれます!
と、とりあえずここまで。
twitterbotに必要な要素。「適当なことを自動でつぶやく」が完成しました。次回は「やらせたいことを実現させるにはどうしたらいいか」をちょっとずつやっていきます。
遊び方無限大
参考資料 - python-twitterのドキュメント
Python: module twitter
やりたいことが出てきたら読めばいいので、今は読まなくてもいい。