问题:如何获取URL中最后一个斜杠之后的所有内容?
如何提取Python中URL中最后一个斜杠之后的内容?例如,这些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
。
回答 0
您不需要花哨的东西,只需在标准库中查看字符串方法,就可以轻松地在“ filename”部分和其余部分之间拆分url:
url.rsplit('/', 1)
因此,您可以简单地通过以下方式获得您感兴趣的部分:
url.rsplit('/', 1)[-1]
回答 1
另一种(惯用的)方式:
URL.split("/")[-1]
回答 2
rsplit
应该完成任务:
In [1]: 'http://www.test.com/page/TEST2'.rsplit('/', 1)[1]
Out[1]: 'TEST2'
回答 3
您可以这样:
head, tail = os.path.split(url)
其中tail是您的文件名。
回答 4
如果需要,可以使用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
回答 5
os.path.basename(os.path.normpath('/folderA/folderB/folderC/folderD/'))
>>> folderD
回答 6
这是更通用的正则表达式方法:
re.sub(r'^.+/([^/]+)$', r'\1', url)
回答 7
extracted_url = url[url.rfind("/")+1:];
回答 8
partition
并且rpartition
对于此类事情也很方便:
url.rpartition('/')[2]
回答 9
分割网址并弹出最后一个元素
url.split('/').pop()
回答 10
url ='http://www.test.com/page/TEST2'.split('/')[4]
print url
输出:TEST2
。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。