日本語の検索クエリを投げるときのナゾ?
ニコニコ動画ダウンロードAPIを実装していて、アルファベットのみのクエリなら上手く取得できるが、日本語を含むクエリだと検索結果が0件になってしまうことがあった。
どうやら、クエリをエスケープするとき、一度だけではなく二度エスケープしなければならないらしい。
つまり、検索結果を取得するためのURLを作るときに、
BASE_URL='http://www.nicovideo.jp' @search_type = 'search' @keyword = CGI.escape(keyword) url = "#{BASE_URL}/#{@search_type}?ref=top&s=#{@keyword}"
ではなく、
BASE_URL='http://www.nicovideo.jp' @search_type = 'search' @keyword = CGI.escape(CGI.escape(keyword)) # ←2回エスケープ url = "#{BASE_URL}/#{@search_type}?ref=top&s=#{@keyword}"
としなければならないらしい。なぜだろ?
ニコ動ダウンロード用gem更新(ver 0.1.0)
以前言っていた通り、検索機能とランキング取得機能を追加したので、バージョンを0.1.0としてリリース致しました。
今回の主な変更点は、以下の通りです。
- キーワード検索、タグ検索機能追加
- ランキング取得機能追加
- エコノミー動画の判別機能(ニコニコ動画へのリンクを抽出して flv ファイルを自動取得するクローラ - unnecessary wordsのものを拝借しました)
例によって使い方のサンプルなどはまた後日。
変更履歴など
こちらを参照ください→ニコ動ダウンロード用ライブラリがgemコマンドでインストールできるようになりました