关于如何在Python中解析URL有很多问题,这个问题是关于最佳或最恐怖的方法.
在我的解析中,我需要4个部分:网络位置,URL的第一部分,路径和文件名以及查询字符串部分.
http://www.somesite.com/base/first/second/third/fourth/foo.html?abc=123
应该解析成:
netloc = 'www.somesite.com'
baseURL = 'base'
path = '/first/second/third/fourth/'
file = 'foo.html?abc=123'
Run Code Online (Sandbox Code Playgroud)
下面的代码产生了正确的结果,但有没有更好的方法在Python中执行此操作?
url = "http://www.somesite.com/base/first/second/third/fourth/foo.html?abc=123"
file= url.rpartition('/')[2]
netloc = urlparse(url)[1]
pathParts = path.split('/')
baseURL = pathParts[1]
partCount = len(pathParts) - 1
path = "/"
for i in range(2, partCount):
path += pathParts[i] + "/"
print 'baseURL= ' + baseURL
print 'path= ' + path
print 'file= ' + file
print 'netloc= ' + netloc
Run Code Online (Sandbox Code Playgroud)
因为你对你想要的部分的要求与urlparse给你的不同,所以它会得到它的好处.但是,您可以替换此:
partCount = len(pathParts) - 1
path = "/"
for i in range(2, partCount):
path += pathParts[i] + "/"
Run Code Online (Sandbox Code Playgroud)
有了这个:
path = '/'.join(pathParts[2:-1])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1116 次 |
| 最近记录: |