フシギにステキな素早いヤバさ

フシギにステキな素早いヤバさを追いかけて。俺は行くだろう。

soundcloudの相互フォロー関係を調べた

簡単にメモを書きます。

方法としては、以下の二点です。

  • jQueryを使う(Safari搭載の開発機能についてるコンソールには標準で入っているようです)
  • Excelを使う

最も大変だったのは、2000名近くあるユーザー表示ページをひたすらスクロールしていく作業でした。

全てのfollowingユーザーを表示する

まず、自分の「following」ページへいき、ひたすら下までスクロールしてすべてのフォロー中ユーザーを表示します。

f:id:yaoki_dokidoki:20131107232300p:plain

javascriptコンソールを表示する

コンソールの表示のさせかたについては下記のページ等をご参照ください。

よくわからない現代魔法 [Safari]Web開発にSafariを使う

とりあえず、Macsafariならばalt+command+Cで表示できます。

コマンドを打ち込みます。

users = $('.userBadge__usernameLink')

打ち込むと、ユーザー名を含むリストがざーっと表示されると思います。

f:id:yaoki_dokidoki:20131107233202p:plain

これは、usersというオブジェクト?に、今表示されているユーザーのすべてのリンクを取得し、配列として格納するためのコマンドです。

図のようなユーザー名ごとに、"userBadge__usernameLink"というクラスが割り当てられているのを利用して抽出しています。

f:id:yaoki_dokidoki:20131107232759p:plain

つぎに、このリストからユーザー名だけ取り出すコマンドを打ち込みます(正確には、ユーザー名へのアンカーを取り出す)。

$(users).each(function(){console.log($(this).attr('href'))})

そうすると、こんどはユーザー名だけのリストがざーっと表示されるはずです。

f:id:yaoki_dokidoki:20131107233552p:plain

これをコピペして、Excelに貼付けましょう。

Excelでデータを加工する

上記の手順で、followingとfollowersの両方のテキストリストを取得してください。 そうしたら、同じ列に、

  • following
  • followers

という感じで、縦にデータを貼付けてしまいます。

f:id:yaoki_dokidoki:20131107234019p:plain

次に、2列目に次のような式を入力します。 強調表示している箇所は、あなたの作ったデータによって変わってくるので、Excelの関数が理解できない人は諦めて、身近なパソコンの先生にやってもらってください。

=IF(COUNTIF($A$1:$A$2560,A1)>1,"相互フォロー","")

この式の意味は、「重複があれば相互フォローと表示し、そう出ない場合は何も表示しない」という意味です。なお、Excelがどうか知りませんが、LibreOfficeではダブルクォーテーションでなくシングルクォーテーションで文字列を囲むとエラーになりましたので注意してください。

f:id:yaoki_dokidoki:20131107234603p:plain

上図のように、重複があれば「相互フォロー」と表示されていることが確認できると思います。

ぼくを信じてください。

最後に、2列目、すなわち「相互フォロー」と表示される列をソートします。

(ひとりも相互フォローがいない場合は、当然変化しません。泣かないでください)

このようにして得られた表を用いて、相互フォローしている人にラブソングを書くなり、相互フォローしていない人をフォロー解除するなり、お好きにするといいと思います。

f:id:yaoki_dokidoki:20131107234852p:plain