start project
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
"""Referrer -> domain bucketing (Chapter 08 rollup, Method A)."""
|
||||
from __future__ import annotations
|
||||
|
||||
from urllib.parse import urlparse
|
||||
|
||||
|
||||
def referrer_domain(referrer: str | None) -> str | None:
|
||||
"""Bucket a raw referrer URL to its host, stripping a leading 'www.'.
|
||||
|
||||
Full-URL cardinality would make the daily rollup unbounded in row
|
||||
count; domain bucketing keeps it small (Ch03's bounded-resource bias).
|
||||
Empty/unparsable referrers return None and are excluded from the rollup.
|
||||
"""
|
||||
if not referrer:
|
||||
return None
|
||||
host = urlparse(referrer).netloc.lower()
|
||||
if not host:
|
||||
return None
|
||||
return host[4:] if host.startswith("www.") else host
|
||||
Reference in New Issue
Block a user