objectif
Analyser/modifier les composants d’une URL et lire la query.
code minimal
from urllib.parse import urlsplit, urlunsplit, parse_qs
parts = urlsplit("https://ex.com/path?p=1&q=a&q=b")
qs = parse_qs(parts.query)
rebuilt = urlunsplit((parts.scheme, parts.netloc, parts.path, parts.query, parts.fragment))
print(qs["q"] == ["a","b"] and rebuilt.startswith("https://")) # attendu: True
utilisation
from urllib.parse import urlsplit
p = urlsplit("https://ex.com/a/b#frag")
print(p.fragment == "frag")
variante(s) utile(s)
from urllib.parse import parse_qsl
print(dict(parse_qsl("a=1&a=2"))["a"] == "2")
notes
- parse_qs retourne des listes, parse_qsl des paires (dernière valeur gagnante).
- urlsplit/urlunsplit évitent des reconstructions manuelles fragiles.