どうも、とがみんです。
ブログを広めるなり、ビジネスにおいて影響力を持つためにはSNSの運用はとても重要だと思います。
どんな人が自分をフォローしているんだろうと考える人も多いのではないでしょうか。
この記事では、Pythonを利用して、どのようにしてTwitterからあるアカウントのフォロワー情報を取得するのかについて説明していきます。
具体的な分析手法については、今後考えて別の記事にでも書いていきます。
Contents
今回目指すもの
今回は、Pythonを利用して、あるユーザーアカウントのフォロワー情報を取得し、それを表にまとめた結果として表示するプログラムを作成します。
【pythonでのフォロワー分析】
フォロワー情報の取得 pic.twitter.com/Nb8Kf7lZQ3
— Fresopiya@究極の自由を追求するブログ (@fresopiya) March 27, 2019
とがみん(@togaminnnn)のフォロワー情報を取得しました。
作成したCSVファイルをスプレッドシートで開いたものが下の写真になります。
今回は、指定したユーザーのTwitterユーザーのフォロワーのデータを取得し、CSVファイルに出力するまでを説明します。
前準備
プログラムを書くまえに、TweepyというライブラリとTwitterAPIキーを取得します。
「Tweepy」のインストール
tweepyというTwitterのAPIを操作するPythonのライブラリをインストールします。
ターミナルを開き、以下のコードを入力し、Enterキーを押します。
Enterキーを押すと、ライブラリのインストールが始まります。
TwitterのAPIキーの取得
Twitterの情報を取得するためには、Twitterの以下の4つの情報を取得する必要があります。
- 「APIキー」
- 「APIシークレットキー」
- 「アクセストークン」
- 「アクセストークンシークレット」
取得方法は以下の記事に詳しく書かれていますので、参考にしてください。
Twitterのフォロワーを取得するコードの実装
フォロワー情報の取得
まず取得した、APIキーを各変数に格納します。
1 2 3 4 | CONSUMER_KEY = "******************" CONSUMER_SECRET = "******************" ACCESS_TOKEN = "******************" ACCESS_TOKEN_SECRET = "******************" |
次のコードで、Twitterにアクセスする準備をします。
1 2 3 4 | import tweepy auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) api = tweepy.API(auth,wait_on_rate_limit = True) |
そして、以下のコードで、ユーザー名の入力待ち状態になります。
1 2 | user = input("「@ユーザー名」を入力してください:") followerIDs = api.followers_ids(user) |
フォロワー情報を取得したいアカウントの「ユーザー名(@〜)」を入力し、Enterキーを押します。
followerIDsにフォロワーのIDが格納されていきます。
次に、followerIDs
に対応したユーザ情報を取得します。
必要な情報を取り出し、followerDatas
に格納していきます。
今回はアカウント名、フォロー数、フォロワー数、ディスクリプション、ツイート数のみを取り出しています。
1 2 3 4 5 6 7 8 9 10 | followerDatas = [] for followerID in followerIDs: followerData = {} data = api.get_user(followerID) followerData["Name"] = data.name followerData["Follow"] = data.friends_count followerData["Follower"] = data.followers_count followerData["Description"] = data.description followerData["TweetCount"] = data.statuses_count followerDatas.append(followerData) |
この時点で、followerDatasにフォロワーの情報が格納されています。
TwitterAPIのアクセス制限
TwiterのAPIには制限があり、15分単位あたりにアクセス可能な件数が決まっています。
アクセスしすぎると、15分経つまで、アクセスができなくなります。以下のwait_on_rate_limitをTrueにしておくと、APIの使用制限に引っかかった際に必要な時間だけ、待機してくれます。
表にデータをまとめる
最後に得たデータを表にまとめます。表にするにあたって「pandas」というライブラリを使用します。
このデータを表にまとめて出力します。
1 2 3 4 5 6 | %matplotlib inline import pandas as pd #表示最大行数 pd.set_option("display.max_rows", 1000) df = pd.DataFrame(followerDatas).loc[:,["Name","Follow","Follower","TweetCount","Description"]] |
%matplotlib inlineはJupyter Notebookを使用する際、それ上にグラフ等が表示されるようにしたい時に記述します。
pd.set_option(“display.max_rows”, 1000)はJupyter Notebookに表示させる最大データ行数を設定しています。
また、.loc[“Name”,”Follow”,”Follower”,”TweetCount”,”Description”]は、表のカラムの順番を指定しています。
ファイル出力
CSVファイルへ出力します。以下のコードを実行すると、ユーザーからの入力待ち状態となり、入力した名前がファイル名のデータを出力します。
1 2 3 4 | #ファイル出力 fileName = input("ファイル名を入力してください:") df.to_csv(fileName + ".csv") print("「" + fileName + ".csv」が作成されました。") |
ターミナルで実行してみる
getFollowers.pyに上記コードを書き込み、そのファイルを実際にターミナルで実行してみます。
【pythonでフォロワー分析】
フォロワー情報の取得② pic.twitter.com/qe7xdTCYp8
— Fresopiya@究極の自由を追求するブログ (@fresopiya) March 27, 2019
GitHub
コードはGitHubにあげているので、参考にしてください。APIキーは自分で取得してください。
>https://github.com/togamin/getFollowers.git
まとめ
Twitterのフォロワー情報を取得する方法について紹介しました。
参考文献
>tweepy.api めも //UserオブジェクトとStatusオブジェクトについて