【python】Twitter APIを使ってみた(tweepy)①

かずおじです。Twitterで一括を処理をしたくなり、pythonでtweepyというライブラリを使用してみました。tweepyのインストールから実際に使用したメソッド(Twitter API)をまとめました。

Twitter APIは時間ごとに制限回数があるため、ご注意を。

Python 3 入門+アメリカのシリコンバレー流コードスタイル

環境

  • MacOS 10.15.6
  • Anaconda3
  • python 3.8.5
  • tweepy 3.10.0

Twitter APIの情報取得

tweepyに限らず、Twitter APIを使用する際は、以下の情報が必要である。ツイッターアカウント1つにつき、1つ必要。

  • API key (Consumer key)
  • API secret (Consumer secret)
  • Access token
  • Access secret

以下のサイトで登録し、取得する。

Twitter Developer

Twitter API使用に関して

Twitter APIには、無作為のフォローなどを防ぐために、APIの使用回数に時間ごとの条件が設けられているため、注意が必要。

以下の情報があれば、情報取得やフォローなどの処理が可能。ユーザー名に関してはTwitterで表示されている情報である。

  • ID
  • ユーザー名(@から始まる文字列で、@は含まない)

tweepy

以下は公式サイトのAPIリファレンス。以降の情報は以下を参考にしている。

API Reference

インストール

今回はcondaでインストールし、バージョンは3.10.0だった。

$ conda install -c conda-forge tweepy 

API設定

下部3行のように、tweepyの3つのメソッドと先に記載したTwitter APIの情報を使用し、認証処理を行う。

import tweepy

# 先に記載したTwitter APIの情報
api_key = "AAAAAAAAAAAAAAA"
api_secret = "BBBBBBBBBBBBBBBBB"
access_token = "CCCCCCCCCCCCCCCCCCC"
access_secret = "DDDDDDDDDDDDDDDD"

# 以下でTwiiter APIの認証処理
twapi_auth = tweepy.OAuthHandler(api_key, api_secret)
twapi_auth.set_access_token(access_token, access_secret)
twapi = tweepy.API(twapi_auth)

これ以降は、上記の処理を行っていることを前提とする。

ユーザーのタイムライン情報を取得:user_timeline

user_timelineメソッドを使用して、ユーザーのタイムライン(ツイート)情報を取得できる。引数は、ID・ユーザー名・表示名である。イテレーション型で取得できる。

ユーザー名を使用した例:

user_name = "kazu_oji"

user_info = twapi.user_timeline(user_name)

IDやプロフィール、ツイートに関する情報を取得できる。

またIDのみを取得したい場合は以下のように指定する。

user_name = "kazu_oji"

followers = twapi.user_timeline(user_name)
user_id = followers[0].user.id)

フォロワーのIDを取得:followers_ids

friends_idsメソッドを使用してフォロワーのIDを取得できる。引数は、ID・ユーザー名・表示名である。ID(数列)のリストを取得できる。

ユーザー名を使用した例:

screen_name = "kazu_oji"

followers = twapi.followers_ids(screen_name)

followersには以下のようなデータが格納される。

[1234568451116699649, 1234547293236195329, 1234539437569413121, 123452257539497574, ....]

フォローしているユーザーのIDを取得:friends_ids

friends_idsメソッドを使用してフォローしているユーザーのIDを取得できる。引数は、ID・ユーザー名・表示名である。ID(数列)のリストを取得できる。

※フォローしているユーザーはfriend(s)と表現される。

IDを使用した例:

use_id = "993091870887628801"

friends = twapi.friends_ids(use_id)

friendsには、followers_idsと同様の形で格納される。

フォローを解除:destroy_friendship

destroy_friendshipは指定したユーザーに対するフォローを解除することができる。(恐ろしい…)引数は、ID・ユーザー名・表示名である。結果的にTwitter上でフォロー数が減っていることを確認できればOK。

IDを使用した例:

user_id = "(フォローを外したいユーザーのID)"

twapi.destroy_friendship(user_id)

まとめ

Twitter APIというものを初めて触ってみましたが、結構簡単に使えて一括処理に便利だなと思いました。ただ簡単にフォローの解除ができたり、制限回数があったりするので注意が必要ですね。また別のメソッドや何かの自動化をした際にはまた記事にまとめます。またuser_timelineで取得できる情報が多いため、その中で特定の情報の指定方法もまとめたいと思います。