A small Python library for easy parsing and modification of URLs with automatic encoding handling.
furl is a Python library that simplifies parsing, constructing, and modifying URLs. It provides an intuitive object-oriented API to handle URL components like paths, query parameters, and fragments, automatically managing encoding and Unicode. It solves the tedium of using Python's standard `urllib` and `urlparse` modules for common URL operations.
Python developers working with web APIs, web scraping, or any application that requires programmatic URL manipulation. It's especially useful for those who find Python's built-in URL handling modules cumbersome.
Developers choose furl for its clean, chainable API, automatic encoding handling, and rich feature set like fragment path/query support and inline modification methods, making URL operations straightforward and less error-prone.
🌐 The easiest way to parse and modify URLs in Python.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides simple attribute access and chainable methods like add() and set(), allowing concise one-liners for modifying URLs, as shown in the README examples.
Manages percent-encoding and Unicode seamlessly, converting between encoded URLs and decoded strings for paths, queries, and fragments without manual intervention.
Treats fragments as first-class objects with their own path and query components, enabling easy manipulation of hash-bang URLs and similar structures.
Includes asdict() methods for serializing URL components to dictionaries, useful for logging or integration with other data structures.
Relies on the orderedmultidict library for query parameters, adding an extra dependency that can complicate setup or increase bundle size.
URL paths have read-only isabsolute attributes when a netloc is present, which can cause AttributeError if not handled carefully, as documented in the README.
Focuses on manipulation without features for URL validation, security checks, or error handling beyond basic parsing, which might require additional code for robust applications.