Twitterアカウントのフォロー数、フォロワー数、フォロー数とフォロワー数の差分を取得するシェルスクリプト(バッチ処理プログラム) ~フォロー数・フォロワー数の増減の記録、定期的なメトリクスの登録・監視・分析に使えるバッチ処理~
多くの個人、企業を始め、数々の有名人が情報や意見を簡単に発信できるTwitterは今や広く普及し、時代のトレンドや世論の分析にも使われるようなコミュニケーションツールとなっています。
今回はそんな世の中を知るビッグデータの1要素となっている公開Twitterアカウントのフォロー数、フォロワー数を収集する簡単なシェルスクリプト(バッチ処理プログラム)を紹介します。
シェルスクリプト(バッチ処理プログラム)でデータを収集することで、対象のTwitterアカウントのフォロー数・フォロワー数の増減を記録したり、定期的にAWS CloudWatchのようなクラウド監視ツールにメトリクスを送信してデータを蓄積し、監視・分析に使うなどバッチ処理と簡単に連携できます。
Twitterアカウントのフォロー数、フォロワー数、フォロー数とフォロワー数の差分を取得するシェルスクリプト(バッチ処理プログラム) ~フォロー数・フォロワー数の増減の記録、定期的なメトリクスの登録・監視に使えるバッチ処理~
基本的な方針はTwitterの公開アカウントのURL(https://twitter.com/<@を除くアカウント名>)からフォロー数、フォロワー数を取得して差分とともに表示します。
Twitterアカウントのフォロー数、フォロワー数、フォロー数とフォロワー数の差分を取得するシェルスクリプト(バッチ処理プログラム)
具体的な処理としてはTwitterアカウントのURLの情報をcurlで取得し、フォロー数、フォローワー数に関する行から正規表現で数値を抽出します。
差分についてはフォロー数からフォロワー数を引いた単純な計算値です。
入力値のTwitterアカウント名の「@(アットマーク)」はあっても無くても処理できるようにしています。
1 | [magtranetwork@localhost ~] # vim check_twitter_follow.sh |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #!/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アカウントのフォロー数、フォロワー数、フォロー数とフォロワー数の差分を取得するシェルスクリプト(バッチ処理プログラム)の使用例
1 2 3 4 5 | [magtranetwork@localhost ~] # check_twitter_follow.sh @magtranetwork Account: @magtranetwork Following: 39312 Followers: 35920 Difference: 3392 |