furl: The Easiest Way to Parse and Modify URLs in Python
This repository profile is provided by osrepos.com, an open source repository discovery platform.

Summary
furl is a lightweight Python library designed to simplify URL parsing and modification. It offers an intuitive API that makes common URL operations, often tedious with standard modules, straightforward and efficient. Developers can easily manipulate various URL components, including paths, query arguments, and fragments, with robust encoding handling.
Repository Information
Topics
Click on any tag to explore related repositories
Use at your own risk
OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of code from these repositories is the user's own responsibility. Always review the repository, source code, dependencies, licenses, and security implications before running or installing anything. OSRepos is not responsible for issues, damages, or losses resulting from third-party repositories.
Introduction
furl is a small yet powerful Python library that provides an exceptionally easy way to parse and modify URLs. While Python's standard urllib and urlparse modules offer URL-related functions, furl streamlines common operations, making URL manipulation intuitive and less prone to errors. It handles complex aspects like encoding and internationalized domain names seamlessly, allowing developers to focus on their application logic.
Installation
Installing furl is straightforward using pip:
pip install furl
Examples
furl simplifies common URL operations. Here are a few examples demonstrating its ease of use:
Modifying Paths and Query Arguments:
from furl import furl
f = furl('http://www.google.com/?one=1&two=2')
f /= 'path'
del f.args['one']
f.args['three'] = '3'
print(f.url)
# Output: 'http://www.google.com/path?two=2&three=3'
Inline Modification Methods:
from furl import furl
# Add arguments
print(furl('http://www.google.com/?one=1').add({'two':'2'}).url)
# Output: 'http://www.google.com/?one=1&two=2'
# Set arguments (replaces existing)
print(furl('http://www.google.com/?one=1&two=2').set({'three':'3'}).url)
# Output: 'http://www.google.com/?three=3'
# Remove arguments
print(furl('http://www.google.com/?one=1&two=2').remove(['one']).url)
# Output: 'http://www.google.com/?two=2'
Handling Encoding and Unicode:
furl automatically handles URL encoding and supports Unicode characters.
from furl import furl
f = furl('http://www.google.com/')
f.path = 'some encoding here'
f.args['and some encoding'] = 'here, too'
print(f.url)
# Output: 'http://www.google.com/some%20encoding%20here?and+some+encoding=here,+too'
f.set(host='????.???', path='???', query='?=?')
print(f.url)
# Output: 'http://xn--eckwd4c7c.xn--zckzah/%D0%B4%D0%B6%D0%BA?%E2%98%83=%E2%98%BA'
Why Use furl?
furl stands out by offering a highly intuitive and Pythonic interface for URL manipulation. It addresses the common frustrations associated with urllib.parse by providing direct access to URL components like scheme, host, path, query, and fragment. Key benefits include:
- Simplicity: Easily parse and modify any part of a URL with simple attribute assignments and dictionary-like access for query parameters.
- Robust Encoding: Automatically handles percent-encoding and decoding, including support for Unicode and Internationalized Domain Names (IDNs).
- Method Chaining: Supports inline modification methods (
add,set,remove) for concise and readable code. - Detailed Control: Offers granular control over path segments, query parameters (including multivalue support), and fragment components.
- Well-Tested: The library is thoroughly tested, ensuring reliability in various scenarios.
Links
- GitHub Repository: https://github.com/gruns/furl
- PyPI: https://pypi.python.org/pypi/furl
Related repositories
Similar repositories that may be relevant next.

django-storages: Streamlining Cloud Storage for Django Applications
July 26, 2026
django-storages offers a unified library for various storage backends, simplifying how Django applications interact with cloud storage services. It provides a flexible and robust solution for managing static and media files across different providers. This project ensures compatibility with supported Django versions, making it a reliable choice for developers.
html2text: Convert HTML to Clean, Readable Markdown Text in Python
July 25, 2026
html2text is a powerful Python script designed to transform HTML content into clean, easy-to-read plain ASCII text, formatted as valid Markdown. This tool is ideal for developers needing to process web content or convert rich text into a more manageable, structured plain text format. It offers both command-line utility and a flexible Python API for integration into projects.
Lassie: Web Content Retrieval for Humans
July 25, 2026
Lassie is a powerful Python library designed for efficient web content retrieval. It simplifies the process of extracting essential information like titles, descriptions, images, and videos from various web pages. This tool is ideal for developers needing to programmatically fetch and parse web content with ease.

micawber: A Python Library for Extracting Rich Content from URLs
July 25, 2026
micawber is a lightweight Python library designed to extract rich content from various URLs, leveraging the oEmbed standard. It provides methods to retrieve metadata and embed codes for services like YouTube and Flickr. This library simplifies the process of displaying embedded media and rich previews in web applications.
Source repository
Open the original repository on GitHub.