1. Artur Barseghyan
  2. tld

Source

tld /

Filename Size Date modified Message
docs
requirements
scripts
src/tld
75 B
271 B
222 B
2.7 KB
93 B
2.2 KB
1.0 KB
18.1 KB
26.5 KB
33 B
2.7 KB
666 B
327 B
25 B
176 B
27 B
1.8 KB
219 B
147 B

tld

Extract the top level domain (TLD) from the URL given. List of TLD names is taken from Mozilla.

Optionally raises exceptions on non-existing TLDs or silently fails (if fail_silently argument is set to True). Knows about active and inactive TLDs. If only active TLDs shall be matched against, active_only argument shall be set to True (default - False).

Prerequisites

  • Python 2.6, 2.7, 3.4, 3.5, 3.6 and PyPy

Installation

Latest stable version on PyPI:

pip install tld

Or latest stable version from GitHub:

pip install https://github.com/barseghyanartur/tld/archive/stable.tar.gz

Or latest stable version from BitBucket:

pip install https://bitbucket.org/barseghyanartur/tld/get/stable.tar.gz

Usage examples

Get the TLD name as string from the URL given:

from tld import get_tld

get_tld("http://www.google.co.uk")
# 'google.co.uk'

get_tld("http://www.google.idontexist", fail_silently=True)
# None

If you wish, you could get the TLD as an object:

from tld import get_tld

res = get_tld("http://some.subdomain.google.co.uk", as_object=True)

res
# 'google.co.uk'

res.subdomain
# 'some.subdomain'

res.domain
# 'google'

res.suffix
# 'co.uk'

res.tld
# 'google.co.uk'

Get TLD name, ignoring the missing protocol:

from tld import get_tld

get_tld("www.google.co.uk", fix_protocol=True)
# 'google.co.uk'

Update the list of TLD names

To update/sync the tld names with the most recent version run the following from your terminal:

update-tld-names

Or simply do:

from tld.utils import update_tld_names

update_tld_names()

Troubleshooting

If somehow domain names listed here are not recognised, make sure you have the most recent version of TLD names in your virtual environment:

update-tld-names

Testing

Simply type:

./runtests.py

Or use tox:

tox

Or use tox to check specific env:

tox -e py36

License

MPL 1.1/GPL 2.0/LGPL 2.1

Support

For any issues contact me at the e-mail given in the Author section.

Author

Artur Barseghyan <artur.barseghyan@gmail.com>