Masayan tech blog.

  1. ブログ記事一覧>
  2. Pythonでtweepyを使用してTwitterの操作を自動化する方法

Pythonでtweepyを使用してTwitterの操作を自動化する方法

公開日

環境

  • Windows 10
  • Python 3.10.1
  • VSCode

前提知識

tweepyというライブラリを使ってPythonスクリプトからAPIにリクエストを送ります。注意点として、TwitterAPIの利用には事前に申請が必要になりますので、利用までに数日間は必要です。

事前準備

APIの認証情報等を取得する

Twitter Developerのページ(https://developer.twitter.com/)にアクセスして、TwitterAPIの登録申請を行い、以下の情報を取得する必要がありますが、詳細な手順はこのあたりの記事を参照ください

  • CONSUMER_KEY
  • CONSUMER_SECRET
  • ACCESS_TOKEN
  • ACCESS_TOKEN_SECRET

Tweepyインストール

pip install tweepy

主な処理

ツイートやフォロー等の処理が可能ですが、何はともあれまずは初期化からです

import tweepy
CONSUMER_KEY = CONFIG["CONSUMER_KEY"]
CONSUMER_SECRET = CONFIG["CONSUMER_SECRET"]
ACCESS_TOKEN = CONFIG["ACCESS_TOKEN"]
ACCESS_SECRET = CONFIG["ACCESS_SECRET"]
auth = tweepy.OAuth1UserHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)

ツイート

contentはツイートする内容です。これだけでツイートができます

api.update_status(content)

ツイートの検索

  • qに検索したいキーワードを指定する
  • countで必要に応じて件数を指定できます
tweets = api.search_tweets(q=hash, count=50)

いいね

対象のツイートのidがわかっている必要があります。なので、上記のsearch_tweetsなどで事前にツイートを取得し、以下のようにcreate_favoriteの引数に渡します

api.create_favorite(tweet.id)

フォロー

フォローもいいね同様、対象のツイートのidがわかっている必要があります。以下のようにcreate_friendshipの引数に渡します

api.create_friendship(screen_name=screen_name)

フォローしているユーザーIDリストの取得

follow_idsのパラメータに自分自身のスクリーンネームを渡すと、取得できます

api.follow_ids(my_screen_name)

フォロワーのユーザーIDリストの取得

follower_idsのパラメータに自分自身のスクリーンネームを渡すと、取得できます

api.follower_ids(my_screen_name)

ユーザー情報の取得

get_userにユーザーIDをパラメーターとして渡すことで、取得できます。例えば以下ではそのユーザーのスクリーンネームを取得しています

api.get_user(user_id).screen_name

フォローされていないユーザーの解除

こちらは少し複雑です。事前にフォローしているがフォローされていないユーザーのリストを用意する必要があります。ただ、上記のfollow_idsとfollower_idsを使用すれば対象のデータは取得可能です。

対象のユーザーのIDを取得して、destroy_friendshipにパラメーターとして渡すことで、そのユーザーのフォローを解除します

# フォローしているがフォローされていないユーザーのIDリストを用意しておく
///
api.destroy_friendship(user_id)

リスト(ユーザーリスト)の追加・削除

リスト作成

  • mode: 公開状態。is_public だと公開、is_privateだと公開になります。
  • name: リスト名
  • description: リストの説明
api.create_list(name="リストの名前", mode=is_public, description = "リストの説明")

リスト削除

api.destroy_list(owner_screen_name="リストの作成者のscreen_name",slug="リストの名前")

リストにユーザーを追加

api.add_list_member(”リストの名前”, id="ユーザーのscreen_name")

以上です。実際に利用する際はエラーハンドリングが必須になるかと思います。認証情報が誤っていたり、リクエスト上限に達していたり、スパム判定を受けたりするとTweepyがエラーをthrowするので、それをハンドリングする必要があります。

まとめ

いかがでしたでしょうか。本記事では、Pythonでtweepyを使用してTwitterの操作を自動化する方法について紹介しています。twitterを使用した何かしらの自動化を行う場合にとても有効活用できますので、ぜひ試してみてください。