furl is a small Python library that makes parsing and
manipulating URLs easy.
Python's standard urllib and
urlparse modules provide a
number of URL
related functions, but using these functions to perform common
URL
operations proves tedious. Furl makes parsing and manipulating URLs
easy.
Furl is well tested, Unlicensed in the public domain,
and supports
Python 2, Python 3, PyPy2, and PyPy3.
Code time: Paths and query arguments are easy. Really easy.
>>> from furl import furl
>>> f = furl('http://www.google.com/?one=1&two=2')
>>> f /= 'path'
>>> del f.args['one']
>>> f.args['three'] = '3'
>>> f.url
'http://www.google.com/path?two=2&three=3'Or use furl's inline modification methods.
>>> furl('http://www.google.com/?one=1').add({'two':'2'}).url
'http://www.google.com/?one=1&two=2'
>>> furl('http://www.google.com/?one=1&two=2').set({'three':'3'}).url
'http://www.google.com/?three=3'
>>> furl('http://www.google.com/?one=1&two=2').remove(['one']).url
'http://www.google.com/?two=2'Encoding is handled for you. Unicode, too.
>>> f = furl('http://www.google.com/')
>>> f.path = 'some encoding here'
>>> f.args['and some encoding'] = 'here, too'
>>> f.url
'http://www.google.com/some%20encoding%20here?and+some+encoding=here,+too'
>>> f.set(host=u'γγ‘γ€γ³.γγΉγ', path=u'Π΄ΠΆΠΊ', query=u'β=βΊ')
>>> f.url
'http://xn--eckwd4c7c.xn--zckzah/%D0%B4%D0%B6%D0%BA?%E2%98%83=%E2%98%BA'Fragments also have a path and a query.
>>> f = furl('http://www.google.com/')
>>> f.fragment.path.segments = ['two', 'directories']
>>> f.fragment.args = {'one': 'argument'}
>>> f.url
'http://www.google.com/#two/directories?one=argument'Or get fancy.
>>> f = furl('http://www.google.com/search?q=query#1')
>>> f.copy().remove(path=True).set(host='taco.com')
... .join('/pumps.html').add(fragment_path='party').url
'http://taco.com/pumps.html#party'
>>>
>>> f.asdict()
{ 'url': 'http://taco.com/pumps.html#party',
'scheme': 'http',
'username': None,
'password': None,
'host': 'taco.com',
'host_encoded': 'taco.com',
'port': 80,
'netloc': 'taco.com',
'origin': 'http://taco.com',
'path': { 'encoded': '/pumps.html',
'isabsolute': True,
'isdir': False,
'isfile': True,
'segments': ['pumps.html']},
'query': { 'encoded': '',
'params': []},
'fragment': { 'encoded': 'party',
'path': { 'encoded': 'party',
'isabsolute': False,
'isdir': False,
'isfile': True,
'segments': ['party']},
'query': { 'encoded': '',
'params': []},
'separator': True}, }API
See more furl magic and examples in furl's API document, API.md.
Installation
Installing furl with pip is easy.
$ pip install furl

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
