Как удалить.com из URL в Python?

Я хочу удалить домен в URL-адресе. Например, пользователь ввел www.google.com, но мне нужен только www.google.

Как это сделать в Python? Спасибо

4 ответа

Это очень общий вопрос. Но самый узкий ответ будет следующим (при условии url содержит рассматриваемый URL):

if url.endswith(".com"):
    url = url[:-4]

Если вы хотите удалить последний период и все справа от него, код будет немного сложнее:

pos = url.rfind('.') # find rightmost dot
if pos >= 0:         # found one
    url = url[:pos]

Чтобы решить эту проблему, не сталкиваясь с проблемой работы с доменным именем, вы можете найти точки слева и остановиться на второй точке.

t = 'www.google.com'
a = t.split('.')[1]
pos = t.find(a)
t = t[:pos+len(a)]

>>> 'www.google'

Если вы хотите удалить 4 символа в конце, нарежьте его

url = 'www.google.com'
cut_url = str[:-4]
# output : 'www.google'

Более сложный ответ

Если у вас есть список всех возможных доменов domains:

domains = ['com', 'uk', 'fr', 'net', 'co', 'nz']  # and so on...
while True:
    domain = url.split('.')[-1]
    if domain in domains:
        url = '.'.join(url.split('.')[:-1])
    else:
        break

Или если, например, у вас есть список доменов, где .co а также .uk не разделены:

domains = ['.com', '.co.uk', '.fr', '.net', '.co.nz']  # and so on...
for domain in domains:
    if url.endswith(domain):
        cut_url = url[:-len(domain)]
        break
else:  # there is no indentation mistake here.
       # else after for will be executed if for did not break
    print('no known domain found')

Что вам нужно здесь rstrip функция.

Попробуйте этот код:

url = 'www.google.com'
url2 = 'www.google'

new_url = url.rstrip('.com')
print (new_url)

new_url2 = url2.rstrip('.com')
print (new_url2)

rstrip удалит только если строка присутствует, в этом случае ".com". Если нет, он просто оставит это. rstrip предназначен для удаления наиболее подходящей строки и lstrip противоположность этому. Проверьте эти документы. Также проверьте функции полосы и полосы.

ОБНОВИТЬ

Как @SteveJessop указал, что приведенный выше пример НЕ является правильным решением, поэтому я отправляю другое решение, хотя здесь оно связано с другим ответом, сначала он проверяет, заканчивается ли строка символом ".com".

url = 'www.foo.com'
if url.endswith('.com'):
    url = url[:-4]
    print (url)
Другие вопросы по тегам