mix*_*mix 93 python url parsing
如何在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
Run Code Online (Sandbox Code Playgroud)
我已经尝试过urlparse,但这给了我完整的路径文件名,例如page/page/12345
.
Luk*_*404 214
你不需要花哨的东西,只需看看标准库中的字符串方法,你就可以轻松地在"文件名"部分和其余部分之间拆分你的网址:
url.rsplit('/', 1)
Run Code Online (Sandbox Code Playgroud)
所以你可以通过以下方式得到你感兴趣的部分:
url.rsplit('/', 1)[-1]
Run Code Online (Sandbox Code Playgroud)
Kim*_*ais 61
一个(idio(ma)tic)方式:
URL.split("/")[-1]
Run Code Online (Sandbox Code Playgroud)
Ben*_*end 14
rsplit
应该完成任务:
In [1]: 'http://www.test.com/page/TEST2'.rsplit('/', 1)[1]
Out[1]: 'TEST2'
Run Code Online (Sandbox Code Playgroud)
如果你愿意,可以使用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]))
Run Code Online (Sandbox Code Playgroud)
输出:
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
Run Code Online (Sandbox Code Playgroud)
os.path.basename(os.path.normpath('/folderA/folderB/folderC/folderD/'))
Run Code Online (Sandbox Code Playgroud)
>>> folderD
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
78958 次 |
最近记录: |