Twitterアカウントのフォロー数、フォロワー数、フォロー数とフォロワー数の差分を取得するシェルスクリプト(バッチ処理プログラム) ~フォロー数・フォロワー数の増減の記録、定期的なメトリクスの登録・監視・分析に使えるバッチ処理~
多くの個人、企業を始め、数々の有名人が情報や意見を簡単に発信できるTwitterは今や広く普及し、時代のトレンドや世論の分析にも使われるようなコミュニケーションツールとなっています。
今回はそんな世の中を知るビッグデータの1要素となっている公開Twitterアカウントのフォロー数、フォロワー数を収集する簡単なシェルスクリプト(バッチ処理プログラム)を紹介します。
シェルスクリプト(バッチ処理プログラム)でデータを収集することで、対象のTwitterアカウントのフォロー数・フォロワー数の増減を記録したり、定期的にAWS CloudWatchのようなクラウド監視ツールにメトリクスを送信してデータを蓄積し、監視・分析に使うなどバッチ処理と簡単に連携できます。
Twitterアカウントのフォロー数、フォロワー数、フォロー数とフォロワー数の差分を取得するシェルスクリプト(バッチ処理プログラム) ~フォロー数・フォロワー数の増減の記録、定期的なメトリクスの登録・監視に使えるバッチ処理~
基本的な方針はTwitterの公開アカウントのURL(https://twitter.com/<@を除くアカウント名>)からフォロー数、フォロワー数を取得して差分とともに表示します。
Twitterアカウントのフォロー数、フォロワー数、フォロー数とフォロワー数の差分を取得するシェルスクリプト(バッチ処理プログラム)
具体的な処理としてはTwitterアカウントのURLの情報をcurlで取得し、フォロー数、フォローワー数に関する行から正規表現で数値を抽出します。
差分についてはフォロー数からフォロワー数を引いた単純な計算値です。
入力値のTwitterアカウント名の「@(アットマーク)」はあっても無くても処理できるようにしています。
[magtranetwork@localhost ~]# vim check_twitter_follow.sh
#!/bin/bash
TMP_DIR=/tmp
TMP_FILE=twitter_user_top.txt
TWITTER_URL=https://twitter.com
mkdir -p ${TMP_DIR}
TWITTER_ACCOUNT=$1
TWITTER_ACCOUNT=`echo "${TWITTER_ACCOUNT}" | sed 's/@//g'`
if [ "${TWITTER_ACCOUNT}" = "" ]; then
echo "Usage: $(basename $0) [TWITTER_ACCOUNT]"
exit 1
fi
TWITTER_URL="${TWITTER_URL}/${TWITTER_ACCOUNT}"
curl -sS ${TWITTER_URL} > ${TMP_DIR}/${TMP_FILE}
FOLLOWING=`cat ${TMP_DIR}/${TMP_FILE} | grep 'data-nav="following"' | sed 's/[^0-9]//g'`
FOLLOWERS=`cat ${TMP_DIR}/${TMP_FILE} | grep 'data-nav="followers"' | sed 's/[^0-9]//g'`
echo "Following: ${FOLLOWING}"
echo "Followers: ${FOLLOWERS}"
echo "Difference: $((FOLLOWING-FOLLOWERS))"
rm -rf ${TMP_DIR}/${TMP_FILE}
Twitterアカウントのフォロー数、フォロワー数、フォロー数とフォロワー数の差分を取得するシェルスクリプト(バッチ処理プログラム)の使用例
[magtranetwork@localhost ~]# check_twitter_follow.sh @magtranetwork Account: @magtranetwork Following: 39312 Followers: 35920 Difference: 3392Reference: Tech Blog citing related sources

