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

環境

  • Windows 10
  • Python 3.10.1
  • VSCode

使用するソースコード

以下の公開リポジトリに置いています

GitHub - masayan1126/tao-py-py: 作業自動化用 Python ライブラリ
作業自動化用 Python ライブラリ. Contribute to masayan1126/tao-py-py development by creating an account on GitHub.

前提知識

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

事前準備

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

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

  • CONSUMER_KEY
  • CONSUMER_SECRET
  • ACCESS_TOKEN
  • ACCESS_TOKEN_SECRET
2021年度版 Twitter API利用申請の例文からAPIキーの取得まで詳しく解説
Twitter APIを利用するためのデベロッパー申請から、APIキー、トークン取得方法を詳しく解説します。
Twitter APIを使うためのAPI KeyやAccess Tokenの取得方法|アプリケーションの利用申請から紹介
Twitter API(ツイッターAPI)を使う場合に必要な「API Key」「API secret key」「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")
masayan
masayan

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

Python学習におすすめの書籍

独習Python/山田祥寛【3000円以上送料無料】
bookfan 1号店 楽天市場店
¥ 3,300(2022/08/04 17:32時点)

コメント

タイトルとURLをコピーしました