Twitterアカウントのフォロー数、フォロワー数、フォロー数とフォロワー数の差分を取得するシェルスクリプト(バッチ処理プログラム) ~フォロー数・フォロワー数の増減の記録、定期的なメトリクスの登録・監視・分析に使えるバッチ処理~

AWS,EC2,Programming,Shell Script

多くの個人、企業を始め、数々の有名人が情報や意見を簡単に発信できる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
Reference: Tech Blog citing related sources