【Python】Twitter APIでフォロー、フォロワーを取得して、データベース化するプログラムを作ってみた
Twitter APIを使ってフォロー、フォロワーを取得
前回、Twitter APIを使ってツイートするプログラムを紹介しました。
今回は現在、私も使っているフォロー、フォロワーを取得し、データベースにするプログラムを紹介します。
このプログラムを軸にフォロー、アンフォローを自動化するプログラムも稼働しています。
ただ前回同様、誰にでもできるというレベルにまで落とし込めていないので、この記事の対象となる方は以下の方となります。
Pythonプログラミングができる方
Twitter Developer Portalに独力で登録し、トークンを取得できる方
cron(またはそれに変わる定期実行)を設定できる+環境をお持ちの方
またこの有料記事は「プログラムの販売」ではなく、あくまでも私が作成したプログラムの「解説記事の販売」なので、上記環境を準備できない、ご自身の環境で動かないといったことには基本的には対応できませんのでご了承ください。
それでは始めていきましょう。
設定ファイルとプログラム概要
今回のプログラムは2つのファイルからできています。
アカウント情報を記載したファイル(accounts.json)
プログラムファイル(TwitterAuto.py)
基本的にAPIのトークンを設定ファイルに記載し、その情報をもとにプログラムファイルで処理をするという流れになります。
ということでまずは設定ファイルの中身を見てみましょう。
{
"Account1":{
"consumer_key":"Your consumer key",
"consumer_secret":"Your consumer secret",
"bearer_token":"Your bearer token",
"access_token":"Your access token",
"access_token_secret":"Your access token secret",
},
"Account2":{
"consumer_key":"Your consumer key",
"consumer_secret":"Your consumer secret",
"bearer_token":"Your bearer token",
"access_token":"Your access token",
"access_token_secret":"Your access token secret",
}
}
「consumer_key」、「consumer_secret」、「bearer_token」、「access_token」、「access_token_secret」はTwitterAPIのトークンです。
これらのトークンを取得できない場合、このプログラムは動きませんのでご注意ください。
このプログラムでは複数のアカウントをこのaccounts.jsonに記載しておくことで、それぞれのフォロー、フォロワーを取得し、「アカウント名.db」というファイル名でデータベース化してくれます。
ただしフォロー、フォロワー情報の取得には1回に取得できる数、また一定の時間内での制限がありますので、全てを取得するにはcronなどで定期的に実行する必要があります。
初期設定ではプログラムを実行する毎にフォロー・フォロワーそれぞれ7,000人まで取得できるようになっており、私は15分間隔で実行しています。
つまり1時間で28,000人まで対応でき、それ以上でも時間をかければ全フォロー、全フォロワーをデータベース化できるようになっています。
データベースはSQLite3を使っており、フォロー、フォロワー、フォローしているがフォロワーになっていない人、フォロワーだがフォローしていない人、それぞれの人数の時間推移が保存されます。
そしてそれぞれの人数の時間推移をフォロー/フォロワー比率を「アカウント名_TwitterAutoDB_Analysis.html」に出力してくれます。
こちらは私のアカウントの例です。
左上の「1D」「1W」「1M」「6M」「1Y」をクリックすると
それぞれ「1日」「1週間」「1ヶ月」「6ヶ月」「1年」の時間推移を見ることもできますし、グラフをドラッグして拡大、ダブルクリックしてリセットなど、インタラクティブにグラフを見ることができます。
最初にもお話ししましたが、このプログラムを軸に複数のプログラムを動かしています。
全部が全部公開する訳ではありませんが、多分みなさんがご興味があるだろう、自動フォロー・アンフォロープログラムは有料記事として公開する予定です。
ということで概要はここまでにしてプログラムの紹介に移っていきましょう。
この記事が気に入ったらチップで応援してみませんか?