Сценарий оболочки для извлечения расширения домена из списка доменных имен - PullRequest
0 голосов
/ 16 августа 2011

У меня есть список URL-адресов (включая http://),, где некоторые являются просто доменными именами, а другие включают полный путь.

Как программно использовать сценарии оболочки, извлечь расширение (.com, .net...), принимая во внимание, что некоторые расширения, например, .co.uk?

Ответы [ 2 ]

2 голосов
/ 17 августа 2011

По сути, вам нужен список всего, что вы рассматриваете как «ДВУ». Их существует конечное число. Затем для каждого URL вы увидите, соответствует ли что-либо в вашем списке этому URL, и если это так, распечатайте его. Причина, по которой вам нужно составить список самостоятельно, заключается в том, что .co.uk не является TLD. .uk - домен верхнего уровня, а .co - поддомен.

Или вы можете создать очень длинное регулярное выражение (например, распаковав .co.uk, .com, .ca, .biz):

$ perl -ne 'next unless /^http:\/\/[^ \/?]+(\.com|\.co\.uk|\.ca|\.biz)/; print $1, "\n"'
2 голосов
/ 17 августа 2011

Самый надежный способ - использовать библиотеку для разбора URL.Например, в Python:

from urlparse import urlparse
domain = urlparse('http://www.mydomain.co.uk/path/to/file.html').netloc
tld = domain.split('.')[-1]
print tld

будет распечатывать только сетевое местоположение (или, как я думаю, вы имели в виду TLD в этом случае)

UPDATE: печатает TLD на этот раз вместовесь домен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...