最近少し話題になったfurlについて使い方を簡単に書いておく。
インストールはいつものように
easy_install furl
pip install furl
でできる。
使ってみたログを書いてみる
>>> from furl import furl >>> url = furl("http://pypi.python.org/pypi?%3Aaction=search&term=test&submit=search") >>> url.host 'pypi.python.org' >>> url.port 80 >>> url.query Query('term=test&%3Aaction=search&submit=search') >>> url.query.params {'term': 'test', ':action': 'search', 'submit': 'search'} >>> url.args {'term': 'test', ':action': 'search', 'submit': 'search'}cgi.parse_qsとかよりは結構使いやすい気がするが一点気になることが・・・
>>> url = furl("http://pypi.python.org/pypi?%3Aaction=search&term=test&submit=search&term=test2") >>> url.args {'term': 'test', ':action': 'search', 'submit': 'search'} >>> url.query.params {'term': 'test', ':action': 'search', 'submit': 'search'}リクエストパラメータに同じキーのものが複数入っていた場合、
どちらか一方しかargsに入らない。
HTTPの仕様では同じキーに別の値を入れることができて、
サーバ側では配列で受け取れるようになっているのだとばっかり。
そのようなリクエストは、このままでは正しくparseできない。(やり方発見できず)
簡単に使えるし、良い感じなだけに惜しいなー。