Skip to main content

Remove tracking parameters from URLs

Project description

philiprehberger-url-clean

Tests PyPI version Last updated

Remove tracking parameters from URLs.

Installation

pip install philiprehberger-url-clean

Usage

from philiprehberger_url_clean import clean, remove_params, normalize

# Remove tracking params (utm_*, fbclid, gclid, etc.)
clean("https://example.com/page?utm_source=twitter&id=123")
# "https://example.com/page?id=123"

# Remove specific params
remove_params("https://example.com?a=1&b=2&c=3", ["b", "c"])
# "https://example.com?a=1"

# Normalize URL
normalize("HTTPS://Example.COM/path/../page?b=2&a=1")
# "https://example.com/page?a=1&b=2"

# Batch processing
clean_many(["https://example.com?utm_source=x", ...])

# Get the list of stripped params alongside the cleaned URL
from philiprehberger_url_clean import clean_url, register_tracking_param

cleaned, removed = clean_url("https://example.com?utm_source=x&id=1")
# cleaned = "https://example.com?id=1"
# removed = ["utm_source"]

# Add a custom tracking param at runtime
register_tracking_param("internal_ref")
clean("https://example.com?internal_ref=abc&id=1")
# "https://example.com?id=1"

Extracting the domain

from philiprehberger_url_clean import domain

domain("https://Example.com/foo?utm=x")
# "example.com"

domain("https://example.com:8080/")
# "example.com"

domain("example.com/path")
# "example.com"

Checking if a URL is clean

from philiprehberger_url_clean import is_clean

is_clean("https://example.com/?id=42")
# True

is_clean("https://example.com/?utm_source=newsletter")
# False

API

Function / Class Description
clean(url, extra_params=None) Remove known tracking parameters
clean_url(url, extra_params=None) Returns (cleaned_url, removed_params) tuple
remove_params(url, params) Remove specific parameters
normalize(url) Lowercase host, sort params, resolve path
clean_many(urls, extra_params=None) Batch clean
domain(url) Return the lowercased hostname from a URL
is_clean(url) Return True when no tracking params are present
register_tracking_param(name) Add a parameter to the global tracking set
unregister_tracking_param(name) Remove a parameter from the global tracking set

Development

pip install -e .
python -m pytest tests/ -v

Support

If you find this project useful:

Star the repo

🐛 Report issues

💡 Suggest features

❤️ Sponsor development

🌐 All Open Source Projects

💻 GitHub Profile

🔗 LinkedIn Profile

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

philiprehberger_url_clean-0.3.0.tar.gz (174.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

philiprehberger_url_clean-0.3.0-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file philiprehberger_url_clean-0.3.0.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_url_clean-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a2bace63b20de9901201e9fae513bdef8c761fd75b9279a07699d021939e3cce
MD5 7513e42963743595272d9ddb9b7bcf92
BLAKE2b-256 300c011e69b790296efeecbfccb3639a67c802cba31f9a9c12ffecc6bb531858

See more details on using hashes here.

File details

Details for the file philiprehberger_url_clean-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_url_clean-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ad90806a4593614186e95fcad6d64ae0584ecec819c42d7f1927f908dbad2e06
MD5 a804c1bcfeed2e2135f8fb3e2b0a12e8
BLAKE2b-256 cc85b21d087cb5ae9c15801419bc5c30fbf257dde2a33b3d815130a36520c96c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page