ニコニコ動画のランキングRSSにJavascriptでアクセスする時の注意
ニコニコ動画のランキングRSSが配信されていますが、そのRSSのアドレスにJavascriptからアクセスしてフィードを取得する時の注意メモ。
まずRSSのアドレスは
http://www.nicovideo.jp/ranking/view/daily/all?rss=atom http://www.nicovideo.jp/ranking/view/daily/all?rss=2.0
の様に所望のランキングページのアドレスの最後にrssパラメータをつけるだけで取得できます。
しかし、Javascriptからアクセスするとフィードが表示されないので注意。
ブラウザで見るとこんな感じのが表示されます。
どこかで見たことありますね。
そうです、ランキングサイトのカレンダーです。
これはこれで何かに使えそうですが、RSSを取得したい場合には不便ですね。
この切り替えはリクエストヘッダ中の
X-Requested-With: XMLHttpRequest
を見ているようです。
つまり、XMLHttpRequestを使用したアクセスではカレンダーのHTMLを返し、それ以外ではフィードを返す使用になっています。
http://www.nicovideo.jp/ranking/mylist/daily/all/20090401
の様に開始日を指定して表示する事も出来ます。
この場合3,4,5月が表示されます。
Jqueryを使用したアクセスでは「$.ajax」に渡すプロパティに
beforeSend: function(xhr) { xhr.setRequestHeader("X-Requested-With", ""); }
を加えてリクエストを発行する前に「XMLHttpRequest」を消してやります。