Infoma!!
情報系大学生が最強のオサレプログラマを目指す
ブログ

【誰でも簡単】pythonでtwitter bot を作ろう!!【#3】

pythonでtwitter botを作ろう!!#3

こんにちは、mochi(@osaremochi)です!

この記事は前回の記事の続きですので、もしよければこちらのほうもご覧くださいね(´ー`)↓

pythonでtwitter botを作ろう!!#2
【誰でも簡単】pythonでtwitter bot を作ろう!!【#2】こんにちは、mochi(@osaremochi)です! この記事は前回の記事の続きですので、もしよければこちらのほうもご覧ください...

では、実際にコードを書いていきます!!

なお、この記事ではpythonの基本文法の解説は行わないのでご了承ください(´ー`)

 

pythonライブラリ:Tweepyのインポート

今回作成するbotでは「Tweepy」というライブラリを使用していきます。

リファレンスには公式英語版と有志による一部日本語版が存在しますので、ある程度学習が進んだら見てみてください。

英語が読めなかったら例の如くGoogle大先生に翻訳していただきましょう(´ー`)

まずコードを書く前に自分の開発環境で「tweepy」をインストールしてください。

ターミナル(コマンドプロンプト)に

pip install tweepy

と入力すればインストールできるはずです。

それでは早速コードを書いていきます!

手元の開発環境でpythonファイルを作成し、以下のコードをコピペしてみてください。

import tweepy

CK = "consumer_key"
CS = "consumer_secret"
AT = "access_token"
AS = "access_token_secret"
auth = tweepy.OAuthHandler(CK,CS)
auth.set_access_token(AT,AS)

api = tweepy.API(auth)

public_tweets = api.home_timeline()
for tweet in public_tweets:
    print(tweet.text)

 

また、ここでCK、CS、AT、ASの中身は前回の記事にてメモした値に書き換えてください(´ー`)

上記のままだと動かないので要注意です。

準備が整ったところで早速実行をしてみましょう!!

すると自分のタイムラインがそのままテキストだけで表示されたと思います。

twitterいじるのって意外と簡単ですよね(´◉◞౪◟◉)

詳しい解説は後にしますが、上記では「tweet.text」という形式でツイートの本文のデータを取得しています。

このプログラムの解説は下にありますので、理解したい方はぜひ見てみてください。

それでは次に「あるワードで検索を行い、ヒットした5件にいいねをする」というプログラムを組んでいきたいと思います!

 

tweepyで自動検索・自動いいね

ソースコードはこちらになります。

import tweepy

CK = "consumer_key"
CS = "consumer_secret"
AT = "access_token"
AS = "access_token_secret"

auth = tweepy.OAuthHandler(CK,CS)
auth.set_access_token(AT,AS)

api = tweepy.API(auth)

search_word = "駆け出しエンジニア"
search_results_list = api.search(q=search_word, count=5)

for tweet in search_results_list:
    try:
        api.create_favorite(tweet.id)
        print(tweet.text)
    except:
        print("I failed to create favorite.")

 

CK、CS、AT、ASを自分の値に変更することは忘れないでくださいね(´ー`)

成功すれば”駆け出しエンジニア”というワードで検索を行い、「いいね」をしたツイートの本文が表示されたと思います。

プログラム中の

api.create_favorite(tweet.id)

は、ツイートのIDを入れるとそのツイートを「いいね」してくれる関数です。

なので、引数にはツイートのIDをtweet.idという形で入れています。

tweet.textで本文が引っ張り出せたのと同じ理屈ですね。

ちなみにapi.create_favorite(tweet.id)では、すでにいいねをしているツイートにいいねをしようとすると、エラーが起こってしまいます。

そのため、エラーが出てもいいように「try, except」で全体をかこっています。

こうすれば

try:
    api.create_favorite(tweet.id)
    print(tweet.text)

でエラーが

起こった場合でも

print("I failed to create favorite.")

が実行されるので、プログラムが途中終了することがなくなります。

また、

search_results_list = api.search(q=search_word, count=5)

の中のcount=5という部分の数字を例えばcount=20にすれば、検索結果上位20個のツイートをいいねすることができます。

 

 

Tweepyの仕様と解説

それでは先ほど紹介した以下のコ―ド

import tweepy
CK = "consumer_key"
CS = "consumer_secret"
AT = "access_token"
AS = "access_token_secret"
auth = tweepy.OAuthHandler(CK,CS)
auth.set_access_token(AT,AS)

api = tweepy.API(auth)

public_tweets = api.home_timeline()
for tweet in public_tweets:
    print(tweet.text)

これについて解説を行っていきます(´◉◞౪◟◉)

まずこのコードです。

auth = tweepy.OAuthHandler(CK,CS)

ここでは、「tweepy」のOAuthHandlerインスタンスを作成しています。

これによってアプリケーション側で認証を通してる感じですね。

「インスタンスが何かよくわからない!」って方はいったんスルーしてみてください(´ー`)

次の

auth.set_access_token(AT,AS)

によってユ―ザーのアクセストークンを設定し、

api = tweepy.API(auth)

によってユーザー側のOAuth認証を通しています。

今回は自分のアクセストークンを渡しているので、認証を通す対象が自分になっていますね。

さらに次の

public_tweets = api.home_timeline()

では、public_tweetsという変数に自分のタイムライン(普段自分がみている、ほかの人のツイートが流れてくるところ)のツイートを新しいものから順に20件取得して、リスト型で代入しています。

これでpublic_tweetsにツイートのデータが複数入りました。

そして最後に、複数のツイートを

for tweet in public_tweets:
    print(tweet.text)

によって順に表示しています。

ここから少し複雑なのですが、基本的にツイートはstatus オブジェクトという形で取得されます。

さらに、statusオブジェクトの中には

  • ツイートの本文
  • ツイートしたユーザーの情報
  • いつツイートされたのか
  • 画像は含まれているか
  • どのくらいリツイートされているか

などの情報が含まれています。ちょうど下の図のような感じですね(´ー`)

tweepyの仕様:pythonによる

statusオブジェクトの中のこれらの変数(インスタンス変数といいます)が持っているデータにアクセスするには、ちょうど上のプログラムの

tweet.text

のように、(statusオブジェクトの名前).(アクセスしたい変数の名前)

という形式で書きます。

というわけで、

public_tweets = api.home_timeline()
for tweet in public_tweets:
    print(tweet.text)

は、

  1. ユーザーのタイムラインを「statusオブジェクト」のリストとして取得
  2. 繰り返し処理で「statusオブジェクト」を「tweet」という変数に代入
  3. 「tweet」が持っている「text」という変数をprintする

というような構造になっていたという訳です。

statusオブジェクトがどのような変数を持っているかについてはこちらのTwitter API 公式リファレンスをご覧ください(´ー`)

 

まとめ

今回はtweepyを利用した簡単なプログラムを書いていきました。

次回はより複雑なプログラムを作り、自動化までしていきたいと思います(´ー`)

Blog Hacks

現在”ガチで稼ぎたい人しか受けてはいけないブログ講座 Blog Hacks”を受講中です!ブログの作り方や戦略だけでなく、Webマーケティングライティング心理学まで幅広い知識と、細かな記事添削、アドバイスが受けられます(´ー`)

私がたったの1記事で約5万円の収益をあげためちゃくちゃ凄い講座です!!興味のある方はレビュー記事を書いてますので、こちらの体験記事か、公式ページをどうぞ!!

【初心者が20万越え!?】大学生でもBlog Hacksで稼げる!【必見】

Blog Hacks公式ページ