Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
>>> extract('http://forums.bbc.co.uk/')
ExtractResult(subdomain='forums', domain='bbc', suffix='co.uk')
"""
netloc = SCHEME_RE.sub("", url) \
.partition("/")[0] \
.partition("?")[0] \
.partition("#")[0] \
.split("@")[-1] \
.partition(":")[0] \
.rstrip(".")
registered_domain, tld = self._get_tld_extractor().extract(netloc)
if not tld and netloc and netloc[0].isdigit():
try:
is_ip = socket.inet_aton(netloc)
return ExtractResult('', netloc, '')
except AttributeError:
if IP_RE.match(netloc):
return ExtractResult('', netloc, '')
except socket.error:
pass
subdomain, _, domain = registered_domain.rpartition('.')
return ExtractResult(subdomain, domain, tld)
.partition(":")[0] \
.strip() \
.rstrip(".")
labels = netloc.split(".")
translations = [_decode_punycode(label) for label in labels]
suffix_index = self._get_tld_extractor().suffix_index(translations)
suffix = ".".join(labels[suffix_index:])
if not suffix and netloc and looks_like_ip(netloc):
return ExtractResult('', netloc, '')
subdomain = ".".join(labels[:suffix_index - 1]) if suffix_index else ""
domain = labels[suffix_index - 1] if suffix_index else ""
return ExtractResult(subdomain, domain, suffix)
.partition(":")[0] \
.rstrip(".")
registered_domain, tld = self._get_tld_extractor().extract(netloc)
if not tld and netloc and netloc[0].isdigit():
try:
is_ip = socket.inet_aton(netloc)
return ExtractResult('', netloc, '')
except AttributeError:
if IP_RE.match(netloc):
return ExtractResult('', netloc, '')
except socket.error:
pass
subdomain, _, domain = registered_domain.rpartition('.')
return ExtractResult(subdomain, domain, tld)
.partition("/")[0] \
.partition("?")[0] \
.partition("#")[0] \
.split("@")[-1] \
.partition(":")[0] \
.strip() \
.rstrip(".")
labels = netloc.split(".")
translations = [_decode_punycode(label) for label in labels]
suffix_index = self._get_tld_extractor().suffix_index(translations)
suffix = ".".join(labels[suffix_index:])
if not suffix and netloc and looks_like_ip(netloc):
return ExtractResult('', netloc, '')
subdomain = ".".join(labels[:suffix_index - 1]) if suffix_index else ""
domain = labels[suffix_index - 1] if suffix_index else ""
return ExtractResult(subdomain, domain, suffix)
netloc = SCHEME_RE.sub("", url) \
.partition("/")[0] \
.partition("?")[0] \
.partition("#")[0] \
.split("@")[-1] \
.partition(":")[0] \
.rstrip(".")
registered_domain, tld = self._get_tld_extractor().extract(netloc)
if not tld and netloc and netloc[0].isdigit():
try:
is_ip = socket.inet_aton(netloc)
return ExtractResult('', netloc, '')
except AttributeError:
if IP_RE.match(netloc):
return ExtractResult('', netloc, '')
except socket.error:
pass
subdomain, _, domain = registered_domain.rpartition('.')
return ExtractResult(subdomain, domain, tld)