Обрезка ссылки до определённого '/'
К примеру у меня есть ссылка
https://example.com/example.php
А мне нужно чтобы у меня на выходе была ссылка по типу этой
https://example.com/
Как я могу это сделать это при помощи python?
Ответы (3 шт):
Автор решения: TerminaliusDeveloper
→ Ссылка
возьми ссылку за переменную, и посчитай все символы, до которого нужно обрезать, к примеру:
https://example.com/ - 20 символов.
Попробуй так:
a = https://example.com/
a.lower()[:20]
В итоге, всё что после 20-ого символа обрезается до 20-ого символа.
Если непонятно, глянь вот это: https://pythonworld.ru/tipy-dannyx-v-python/stroki-funkcii-i-metody-strok.html
Автор решения: entithat
→ Ссылка
Будем использовать встроенный модуль urllib.parse
from urllib.parse import urlparse
urls = [
'https://example.com/example.php',
'https://example.com/example.php?a=12&b=45',
'https://example.com',
'https://example.com/',
'https://example.com/hello/world',
'https://example.com/hello/world/child.php',
]
for url in urls:
u = urlparse(url)
print(f'{u.scheme}://{u.netloc}/') # https://example.com/
Либо конкретно для полных адресов:
url = 'https://example.com/example.php'
print(url[:url.rindex('/') + 1]) # https://example.com/
Автор решения: Andy Pavlov
→ Ссылка
Добавлю еще вариант через регулярку. Список урлов взял у entithat. Спасибо.
import re
urls = [
'https://example.com/example.php',
'https://example.com/example.php?a=12&b=45',
'https://example.com',
'https://example.com/',
'https://example.com/hello/world',
'http://example.com/hello/world/child.php',
]
print([re.search('https?://[\w\-.]+/?', u).group(0) for u in urls])
# ['https://example.com/', 'https://example.com/', 'https://example.com', 'https://example.com/', 'https://example.com/', 'http://example.com/']