имя разделения доменного имени Python и расширение

Как Вы разделили бы доменное имя, которое возвратит имя и расширение

5
задан SilentGhost 26 May 2010 в 09:19
поделиться

6 ответов

domain = 'subdomain.domain.ext'
name, ext = domain.split('.')[-2:]
1
ответ дан 18 December 2019 в 07:53
поделиться

В зависимости от вашего приложения, будьте осторожны, просто выполняя часть, следующую за последней '.'. Это отлично работает для .com, .net, .org и т. Д., Но, скорее всего, не удастся сделать для многих TLD County Code . Например. bit.ly или google.co.uk .

(Под этим я подразумеваю «bit.ly», вероятно, предпочитают, чтобы его идентифицировали , включая TLD .ly, тогда как Google, вероятно, не хочет, чтобы его идентифицировали с поддельным .co остаток. Насколько это важно, очевидно, будет зависеть от того, что вы делаете).

В тех сложных случаях ... что ж, я подозреваю, у вас много работы!

Надежный ответ, вероятно, будет зависеть от того, как вы собираете / храните свои домены и что вы действительно хотите вернуть в качестве «имени».

Например, если у вас есть набор доменных имен без информации о субдомене, вы можете сделать противоположное тому, что было предложено выше, и просто убрать первую часть:

>>> "stackoverflow.com".split('.')[0]
'stackoverflow'
4
ответ дан 18 December 2019 в 07:53
поделиться

Вы имеете в виду имя интернет-домена, например www.stackoverflow.com? Если да, то просто используйте:

>>> 'www.stackoverflow.com'.rsplit('.', 1)
['www.stackoverflow', 'com']
2
ответ дан 18 December 2019 в 07:53
поделиться

В общем, нелегко определить, где заканчивается бит регистрации пользователя и начинается бит реестра. Например: a.com, b.co.uk, c.us, d.ca.us, e.uk.com, f.pvt.k12.wy.us ...

Хорошие люди в Mozilla имеют проект, посвященный перечислению суффиксов доменов, под которыми публика может регистрировать домены: http://publicsuffix.org/

2
ответ дан 18 December 2019 в 07:53
поделиться

Думаю, вам будет интересен модуль urlparse : http://docs.python.org/library/urlparse.html

1
ответ дан 18 December 2019 в 07:53
поделиться

Если вы всегда хотите получить последнюю часть доменного имени, вы можете:

subdomain, _, domain= fqdn.rpartition('.')
0
ответ дан 18 December 2019 в 07:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: