Как получить все после последнего слэш в URL-адресе?
Как я могу извлечь все, что следует за последней косой чертой в URL-адресе в Python? Например, эти URL-адреса должны возвращать следующее:
URL: http://www.test.com/TEST1
returns: TEST1
URL: http://www.test.com/page/TEST2
returns: TEST2
URL: http://www.test.com/page/page/12345
returns: 12345
Я пробовал urlparse, но это дает мне полное имя файла пути, например page/page/12345
.
Ответы
Ответ 1
Вам не нужны причудливые вещи, просто посмотрите строковые методы в стандартной библиотеке, и вы можете легко разделить свой URL между 'filename' часть и остальные:
url.rsplit('/', 1)
Итак, вы можете получить интересующую вас часть:
url.rsplit('/', 1)[-1]
Ответ 2
Еще один (idio (ma) tic) способ:
URL.split("/")[-1]
Ответ 3
rsplit
должно соответствовать задаче:
In [1]: 'http://www.test.com/page/TEST2'.rsplit('/', 1)[1]
Out[1]: 'TEST2'
Ответ 4
Вы можете сделать так:
head, tail = os.path.split(url)
Где tail будет именем вашего файла.
Ответ 5
urlparse подходит для использования, если вы хотите (скажем, избавиться от любых параметров строки запроса).
import urllib.parse
urls = [
'http://www.test.com/TEST1',
'http://www.test.com/page/TEST2',
'http://www.test.com/page/page/12345',
'http://www.test.com/page/page/12345?abc=123'
]
for i in urls:
url_parts = urllib.parse.urlparse(i)
path_parts = url_parts[2].rpartition('/')
print('URL: {}\nreturns: {}\n'.format(i, path_parts[2]))
Вывод:
URL: http://www.test.com/TEST1
returns: TEST1
URL: http://www.test.com/page/TEST2
returns: TEST2
URL: http://www.test.com/page/page/12345
returns: 12345
URL: http://www.test.com/page/page/12345?abc=123
returns: 12345
Ответ 6
extracted_url = url[url.rfind("/")+1:];
Ответ 7
Вот более общий, регулярный способ сделать это:
re.sub(r'^.+/([^/]+)$', r'\1', url)
Ответ 8
os.path.basename(os.path.normpath('/folderA/folderB/folderC/folderD/'))
folderD
Ответ 9
partition
и rpartition
также удобны для таких вещей:
url.rpartition('/')[2]
Ответ 10
Разделите URL и вытащите последний элемент
url.split('/').pop()
Ответ 11
url ='http://www.test.com/page/TEST2'.split('/')[4]
print url
Вывод: TEST2
.