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