soundcloudの相互フォロー関係を調べた
簡単にメモを書きます。
方法としては、以下の二点です。
最も大変だったのは、2000名近くあるユーザー表示ページをひたすらスクロールしていく作業でした。
全てのfollowingユーザーを表示する
まず、自分の「following」ページへいき、ひたすら下までスクロールしてすべてのフォロー中ユーザーを表示します。
javascriptコンソールを表示する
コンソールの表示のさせかたについては下記のページ等をご参照ください。
よくわからない現代魔法 [Safari]Web開発にSafariを使う
とりあえず、Macのsafariならばalt+command+Cで表示できます。
コマンドを打ち込みます。
users = $('.userBadge__usernameLink')
打ち込むと、ユーザー名を含むリストがざーっと表示されると思います。
これは、usersというオブジェクト?に、今表示されているユーザーのすべてのリンクを取得し、配列として格納するためのコマンドです。
図のようなユーザー名ごとに、"userBadge__usernameLink"というクラスが割り当てられているのを利用して抽出しています。
つぎに、このリストからユーザー名だけ取り出すコマンドを打ち込みます(正確には、ユーザー名へのアンカーを取り出す)。
$(users).each(function(){console.log($(this).attr('href'))})
そうすると、こんどはユーザー名だけのリストがざーっと表示されるはずです。
これをコピペして、Excelに貼付けましょう。
Excelでデータを加工する
上記の手順で、followingとfollowersの両方のテキストリストを取得してください。 そうしたら、同じ列に、
- following
- followers
という感じで、縦にデータを貼付けてしまいます。
次に、2列目に次のような式を入力します。 強調表示している箇所は、あなたの作ったデータによって変わってくるので、Excelの関数が理解できない人は諦めて、身近なパソコンの先生にやってもらってください。
=IF(COUNTIF($A$1:$A$2560,A1)>1,"相互フォロー","")
この式の意味は、「重複があれば相互フォローと表示し、そう出ない場合は何も表示しない」という意味です。なお、Excelがどうか知りませんが、LibreOfficeではダブルクォーテーションでなくシングルクォーテーションで文字列を囲むとエラーになりましたので注意してください。
上図のように、重複があれば「相互フォロー」と表示されていることが確認できると思います。
ぼくを信じてください。
最後に、2列目、すなわち「相互フォロー」と表示される列をソートします。
(ひとりも相互フォローがいない場合は、当然変化しません。泣かないでください)
このようにして得られた表を用いて、相互フォローしている人にラブソングを書くなり、相互フォローしていない人をフォロー解除するなり、お好きにするといいと思います。