urllib.parse can build and inspect URL query strings without making network requests.

URL Query Builder

url_query_builder.py
from urllib.parse import urlencode, urlparse, parse_qs

page = 

params = {
    "q": "python trace",
    "page": str(page),
    "sort": "recent",
}

query = urlencode(params)
url = "https://example.com/search?" + query
parsed = urlparse(url)
values = parse_qs(parsed.query)

print("path=" + parsed.path)
print("query=" + query)
print("page=" + values["page"][0])
from urllib.parse import urlencode, urlparse, parse_qs

page = 

params = {
    "q": "python trace",
    "page": str(page),
    "sort": "recent",
}

query = urlencode(params)
url = "https://example.com/search?" + query
parsed = urlparse(url)
values = parse_qs(parsed.query)

print("path=" + parsed.path)
print("query=" + query)
print("page=" + values["page"][0])
from urllib.parse import urlencode, urlparse, parse_qs

page = 

params = {
    "q": "python trace",
    "page": str(page),
    "sort": "recent",
}

query = urlencode(params)
url = "https://example.com/search?" + query
parsed = urlparse(url)
values = parse_qs(parsed.query)

print("path=" + parsed.path)
print("query=" + query)
print("page=" + values["page"][0])
URL encoding Encoding turns query parameters into text that is safe to place after `?` in a URL.