読者です 読者をやめる 読者になる 読者になる

まめ畑

ゆるゆると書いていきます

ニコニコ動画のランキングRSSにJavascriptでアクセスする時の注意

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」を消してやります。