Amazonのランキング情報を元にした人気ランキングなぞを作ってみました。
アイデア自体はずいぶん前からあって手で調べたこともありました。
ただ手で調べるのは激しく手間がかかるのにイマイチ確実じゃなかったり。
それは該当アイテム(巻)を全て調べるのが不可能に近いからってこと。
消費行動上、発売日が最も近いアイテムが一番上にある可能性が高いけど、
誤差の大きい500位以降になるとそうでないことも結構有ったりする。
それから詳しいことは後述するけど順位の変動もかなり大きかったり。
そんなわけでプログラムの力を借りて自動化してみたわけです。
実のところやってることは単純かつ膨大で「力技」と呼ぶに相応しい(笑)。
なにしろランクを作成するために取得してるアイテム数はなんと750ほど。
AmazonのECS(E-Commerce Service)は同時に10アイテムまで取得できるので
リクエスト数は75回ほどで済みますが……実行時間が80秒ほどかかる(爆)。
まぁ、手でいちいち調べてるよりは劇的に早いですが。
その放送中アニメの人気ランキングはこちら
(ブログはサイドバーにもあります)
この人気ランキングはAmazonのDVDのセールスランキングが元なので
よーするにベストセラーページとほぼ同じといっていいかも。
特にTop100に入ってる作品に関してはAmazonでもそのまま出てくるし。
250〜300位ぐらいまではアニメのランクを開けばだいたい出てきます。
ページをめくったりスクロールしたりと一望できないのが面倒だけど。
それと実際にこの自動生成ランクを見てもらえばわかると思うけど
250〜300位までだとかなり上位の作品しか見ることができません。
あとアニメのランクはさりげなくタイトルが抜けてたりするし。
(おそらく該当アイテムのジャンル属性が入ってないか間違ってる)
実際にランキングを作って思ったけど、凄くシビアな結果が出てるなと。
DVDを買いたいと思うほどに支持してる人がストレートに出てるわけで。
テレビの視聴率やブログの記事数よりも人気度に相応しい気がするよ。
少なくとも今のアニメの大半を占める深夜アニメのビジネスモデルは
DVDが売れて初めて成り立つわけで、そーいう意味で有用なデータだね。
シビアと言えば、好きな作品の人気のなさまではっきり見れます(爆)。
よーするに「あさっての方向。」のことですが。
あまり受けないだろうなとは思ったけど、順位が低すぎだ……
最初に見たときは3000位台でちょっと唖然としたのを覚えてるよ。
(順位は300〜4000位ぐらいを上がったり下がったりしてる)
「よみがえる空」もそんなに人気なかったけど、まだマシだったのは
男くささとか渋さとか硬派なとこがそれなりに支持されたからかも。
ランキングを作ってもうひとつハッキリわかったことが有りました。
それはランキングの変動がかなり大きいってこと。
手で調べてた時も調べるたびにずいぶん結果が変わってたけど、
簡単に調べられるうえに一覧できるのでよりハッキリと実感したよ。
ハルヒの限定DVDが品切れしてもすぐにはランクが落ちなかったので、
リアルタイムランクと言っても単純な売れ行きではないとは思ってた。
直近の24時間の売れ行きで順位付けしてるのかな?と推測したりもした。
でもチャートの動きを追う限りそんな簡単ではないようで。
順位変動の傾向としては売れると順位が上がる。当然ですが。
そして上がった順位は時間とともにじわじわと落ちていく。
そこから推測したのは、より近い時間の売上ほど高いポイントにして
今までの全ての販売数をポイントとして順位付けしたのではないかなと。
つまりずっと上にいるのはコンスタントに売れ続けてるってこと。
そして上がり下がりが激しいのは売れる間隔が開いてるってこと。
10000位以降のは最後に売れてからかなり時間が経ってるっぽいね。
だから1個でも売れると一気に1000位ぐらいまで上がったり。
順位変動は400位ぐらいから下のタイトルだと特に顕著だったりして。
表示されるランクはあくまで今現在の順位に過ぎないって感じで。
これだと人気度を調べるって意味ではちょっと厳しいっすね。
1週間分ぐらいの変動データを蓄積して平均や偏差を出さないと。
(放送直後にランキングが大きく跳ね上がる傾向もあるから)
しかしそれには定期的にデータ更新する仕組みが必要になってくる。
このランキングを置いてるsakuraにはcronが使えるコースも有るけど、
今使ってる一番安い約100円/月コースでは使えないのであった。
もともとこの用途で借りてたわけじゃないから。
(コースを変えるには解約して契約しなおさないといけない)
にしてもレンタルサーバーも安くなったもんだねぇ。
傾向を出すのは別として定期的なデータ更新は入れたいっすね。
今はアクセスした人が80秒ほど待つことになるから……
※30分以内の連続アクセスならすぐに表示します
アクセスとは非同期にデータを更新すれば見てる人は待たすに済むし。
やっぱりcronだけでも使えるとこをもう一つ契約するかな。
[追記] 現在は裏で自動更新しています
ちなみに何故sakuraに置いてあるかというと、
今回のスクリプトはperlモジュールを使いまくりだからです。
特にXMLのパースなんて自前でなんかやりたくねぇっす。
(AmazonのECSが返してくるのでXMLデータなのです)
あと今回は画面デザインがテンプレート方式になってます。
デザインを決めるのが面倒でBGMテーブルに見た目そっくりですが。
プロバイダーのスペースでもモジュールを選べば使える(らしい)けど
とにかく省力化を目指してたので楽な方法を選びました。
楽をするためのスクリプトに手間をかけすぎるのは本末転倒だし。
スクリプトの中身もやってる内容に比べるととてもシンプルだよ。
てなわけで興味があったら見てやってください。