Как удалить.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)