ユーザ情報をクロールする場合は API で friends をたどっていけばよく、クローラを 2 つ動かして一日で 135000 ユーザを取得できた。
150回/1h のリクエスト制限 1回に 100 人分取得できる クローラ 2 つ ユーザに重複がない場合 → 150 * 100 * 24 * 2 = 720000 実際には → 135000 / 720000 * 100 = 18.75 % がユニークなユーザ
タイムゾーンが日本のユーザがフォローしているユーザなのでボットはもちろん、外国の人たちもかなりの数をクロールしてると思われる。
ただ、問題は何人をクロールするかではなくてクロールしたデータをどう加工するか。県別に集計しようとしているんだけど、さすがに 130000 ユーザを 1 プロセスで一人ずつ判定しながらテーブルに結果をインサートしていくのは非効率すぎる。最初はそれをやってたんだけど、1 万ユーザあたりで何分もかかるようになって終了。
レンタルサーバだから分散処理なんてできないしな・・・せいぜい cgi を複数キックして複数プロセスを立ち上げて処理させるぐらいか(apacheに迷惑)。かといってクラウドがどうのまでは行きたくない。ん〜どうしよう。
insertは 遅いから csv ファイルに落とした後に import するか、PStore あたりでダンプして置いとくとかを考えてる。