Soraの気ままBlog

このサイトは私が気ままにいろんなことを書いて行く場所です。プログラム、IT関連、カフェ巡りなど様々なことをやっております!暇つぶし程度で軽く読めるものを目指して。

自動いいねボットを作る【Tweepy】

time 2017/06/19

どうもお久しぶりです。色々とやっている間に数ヶ月もの時間が流れてしまいました。

その間にも色々やっていたのでまとめて見ようかなと思います、

sponsored link

自動いいねボットとはなんぞや

その名の通り、ターミナル(コマンドプロンプト)を起動しておくだけで自動でいいねを行ってくれるというものです。

実際私がいいねボットとして動かしてるアカウントもあるので参考までにどうぞ。

今回の目標

今回の目標は先ほど紹介したいいねボットを作って見ようぜってものとなっております。

開発環境

開発を行うに伴い、必要なものです。

  • Python 2.7.13
  • Tweepy

Tweepy導入に関しては下記の方法で導入が可能です。

 $ sudo easy_install tweepy 

また、その後

 

$ python
>>> import tweepy

と入力し、何もエラーが出なかったら正常に導入ができています。

コード

コードは私が以前GitHubにあげていたものをそのまま流用します。

それに付け加えて色々やっていきます。

GitHub

#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
import tweepy
import datetime
import sys

CK = ""
CS = ""
AT = ""
AS = ""

auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
 
api = tweepy.API(auth)
 
class Listener(tweepy.StreamListener):
    def on_status(self, status):
        status.created_at += datetime.timedelta(hours=9)
        api.create_favorite(status.id)
        return True

while True: 
    try:
        listener = Listener()
        stream = tweepy.Stream(auth, listener)
        stream.userstream()
    except:
        sys.exit()

このコードだけでも動くことは動くのですが・・・

何せ動かしてる側としてはしっかり実行されてるのかよくわからないですよね

今回は底を追加していきたいと思います。

画面に文字を出力

今回の記事では、「どんな内容のツイートか」また、「誰がツイートしたものなのか」、「いつツイートされたものなのか」をターミナルに表示するようにしていきましょう。

画面に文字を出力する部分のコード

todaydetail = datetime.datetime.today()
time = todaydetail.strftime("[%H:%M:%S]")
print(time + u"@" + status.author.screen_name + u":「" + status.text + u"」")

単純にこのようなコードになります。

注意点としては、日付を扱うので必ず

import datetime

を行っておくということです。

コードの解説

printの中にある「time」と「status.author.screen_name」と「status.text」についての解説です。

前者には誰がツイートを行ったかという情報が@なしで入っています。

後者についてはツイート本文が書かれています。

「time」については現在の時刻です。

実際に表示されるとこのようになります。

だいぶいい感じですね。

最終的に・・・

コードはこのようなものに収まりました(?)

 

 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
import tweepy
import datetime
import sys

CK = ""
CS = ""
AT = ""
AS = ""

auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
 
api = tweepy.API(auth)
 
class Listener(tweepy.StreamListener):
    def on_status(self, status):
        status.created_at += datetime.timedelta(hours=9)
        todaydetail = datetime.datetime.today()
        time = todaydetail.strftime("[%H:%M:%S]")
        print(time + u"@" + status.author.screen_name + u":「" + status.text + u"」")
        api.create_favorite(status.id)
        return True

while True: 
    try:
        listener = Listener()
        stream = tweepy.Stream(auth, listener)
        stream.userstream()
    except:
        sys.exit()

思ってたよりも割とすっきりとできていて良かったです。

 

参考ページ

最後に

今回は久々のブログ更新だったのですがいかがだったでしょうか?

またちまちまマイペースに更新していきたいと思うのでよろしくお願いします。

それではお疲れ様でした。


GUTE-URLS

Wordpress is loading infos from twitter

Please wait for API server guteurls.de to collect data from
twitter.com/1269_o

sponsored link

down

コメントする




エミュレータ

このBlog書いてるのはこんな人だよ

KamiyaSora

KamiyaSora

どうもみなさま!KamiyaSoraと申します!プログラミングなんてたいそうなものはできませんが、パソコンやPHPなどに触れるのが好きです。最近はLINEAPIなどでも遊んでいますっ!



sponsored link