1 反解析
可以利用一些方法将分解的url的哥哥部分重新组装在一起,形成一个串。解析的url对象有一个geturl方法。
代码:
from urlparse import urlparse
url = 'http://user123:pwd@NetLoc:80/path;param?query=arg#frag'
print 'orig : ',url
parsed = urlparse(url)
print 'parsed :',parsed.geturl()
结果:
orig : http://user123:pwd@NetLoc:80/path;param?query=arg#frag
parsed : http://user123:pwd@NetLoc:80/path;param?query=arg#frag
[Finished in 0.3s]
可以发现,两个url是相同的,注意:geturl()只适用于urlparse()或者urlsplit()返回的对象。
2 利用urlunparse()可以把包含串的普通元组重新组合为一个url
from urlparse import urlparse,urlunparse
url = 'http://user123:pwd@NetLoc:80/path;param?query=arg#frag'
print 'orig : ',url
parsed = urlparse(url)
print 'parsed :',type(parsed),parsed
t = parsed[:]
print 'tuple:',type(t),t
print 'new:',urlunparse(t)
结果:
orig : http://user123:pwd@NetLoc:80/path;param?query=arg#frag
parsed : <class 'urlparse.ParseResult'> ParseResult(scheme='http', netloc='user123:pwd@NetLoc:80', path='/path', params='param', query='query=arg', fragment='frag')
tuple: <type 'tuple'> ('http', 'user123:pwd@NetLoc:80', '/path', 'param', 'query=arg', 'frag')
new: http://user123:pwd@NetLoc:80/path;param?query=arg#frag
[Finished in 0.3s]