Как получить все после последней косой черты в 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.
10 ответов:
вам не нужны причудливые вещи, просто смотрите строковые методы в стандартной библиотеке и вы можете легко разделить свой url-адрес между частью "filename" и остальными:
url.rsplit('/', 1)таким образом, вы можете получить интересующую вас часть просто с:
url.rsplit('/', 1)[-1]
rsplitдолжно быть до задачи:In [1]: 'http://www.test.com/page/TEST2'.rsplit('/', 1)[1] Out[1]: 'TEST2'
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
Comments