概要
Python 標準の urllib 等を利用した URL 操作は結構面倒。URL パラメータとかを生成する場合等は furl を利用するのが便利。
インストール
pip を利用する。
pip install furl
使い方
使い方は「furl/API.md」に全部書いてある。
サンプル
これだけだとつまらないので、ほんの一部の機能を使った簡単なサンプルをはっておく。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
from furl import furl
class TestFurl(unittest.TestCase):
def setUp(self):
"""
気象庁 東京 2012年8月データを取得する URL をサンプルにする
"""
self.url = furl(
'http://www.data.jma.go.jp/obd/stats/etrn/view/daily_s1.php?'
'prec_no=44&'
'block_no=47662&'
'year=2012&'
'month=8&'
'day=&'
'view=')
def test_change_year(self):
"""
年を変更してみる
"""
# 年を変更する
self.url.args['year'] = '2011'
self.assertEquals(
'http://www.data.jma.go.jp/obd/stats/etrn/view/daily_s1.php?'
'prec_no=44&'
'block_no=47662&'
'year=2011&' # 年が変更された
'month=8&'
'day=&'
'view=',
self.url.url)
def test_clear(self):
"""
パラメータをクリアする
"""
self.url.set({})
self.assertEquals(
'http://www.data.jma.go.jp/obd/stats/etrn/view/daily_s1.php',
self.url.url)
if __name__ == '__main__':
unittest.main()
課題
furl は現在 Python3 に対応してない。パッチは投稿されているみたいなので、対応をすこし待ってみる。
もし Python 3 に対応しないようなら、fork してでも使いたいライブラリです。