How to Decode a URL in Python (with Examples)

Decoding URLs is an essential skill for any Python developer. This easy to follow, step-by-step guide will teach you how to decode a URL in Python using practical examples and real-world applications so you can learn by doing.

Introduction

URL decoding is the process of converting an encoded URL back into its original readable format. URLs often contain special characters that need to be encoded when transmitting the URL across networks.

Why would you want to decode a URL? There are many reasons you may need to decode an encoded URL string in Python:

  • To extract and read query parameters and values passed in the URL.

  • To read and process the fragment identifier portion of the URL.

  • To convert an encoded URL back to a human-readable format.

Decoding URLs in Python is simple with the built-in urllib.parse module. In this article, you'll learn step-by-step how to decode a URL in Python.

Step 1: Import the urllib.parse module

The urllib.parse module in Python contains functions for parsing URLs. To decode a URL, you first need to import this module:

import urllib.parse

This will allow you to access the URL decoding function in the next step.

Step 2: Use the unquote() function to decode the URL

The urllib.parse module provides a function called unquote() that will decode an encoded URL string.

To use it, pass the URL string as a parameter to unquote():

from urllib.parse import unquote

url = "https%3A%2F%2Fwww.example.com%2Fpath%2Ffile%3Fkey%3Dvalue%23fragment"

decoded_url = urllib.parse.unquote(url)

print(decoded_url)

This will decode the URL and print out the original decoded string:

https://www.example.com/path/file?key=value#fragment

That's all there is to the basic decoding of a URL in Python!

Example 1: Decoding a simple URL

Let's look at a simple example of decoding a basic URL string:

from urllib.parse import unquote

encoded_url = "https%3A%2F%2Fwww.google.com"
decoded_url = unquote(encoded_url)

print(decoded_url)

This prints:

https://www.google.com

The encoded URL with %3A and %2F is converted back to the original format.

Example 2: Decoding a URL with query parameters

URLs can contain query parameters that pass data to the server. For example:

from urllib.parse import unquote

encoded_url = "https%3A%2F%2Fwww.example.com%2Fpath%2Fpage%3Fkey1%3Dvalue1%26key2%3Dvalue2"

decoded_url = unquote(encoded_url)

print(decoded_url)

This prints:

https://www.example.com/path/page?key1=value1&key2=value2

The query parameters key1=value1&key2=value2 are now in the original decoded form.

Example 3: Decoding a URL with fragment identifier

The fragment identifier portion of a URL comes after the # symbol. For example:

from urllib.parse import unquote

encoded_url = "https%3A%2F%2Fwww.example.com%2Fpath%2Fpage%23section1"

decoded_url = unquote(encoded_url) 

print(decoded_url)

This prints:

https://www.example.com/path/page#section1

The fragment section1 is now decoded.

Conclusion

Decoding URLs in Python is easy using the urllib.parse.unquote() function. This simple yet powerful function allows you to:

  • Decode full URL strings into a human-readable format
  • Extract and process query parameters from URLs
  • Read fragment identifiers from URLs

With the examples in this guide, you've learned a straightforward way to decode URLs in Python. The unquote() function is essential knowledge for parsing, processing, and manipulating URL strings in your Python code.

For more information, refer to the official Python documentation on urllib.parse. You can also find additional URL handling tools like quote() and urlencode() in the urllib.parse module.

Cookie
We care about your data and would love to use cookies to improve your experience.