urlparse----分解URL
作用:将URL分解为其组成部分。
1 解析作用
urlparse()函数的返回值是一个对象,相当于一个包含6个元素的tuple。
from urlparse import urlparse
url = 'https://netloc/path;param?query=arg#frag'
parsed = urlparse(url)
print parsed
结果:
ParseResult(scheme='https', netloc='netloc', path='/path', params='param', query='query=arg', fragment='frag')
解释:
通过元组接口得到的url部分分别是机制,网络位置,路径,路径段参数(由一个分号与路径分开),查询以及片段。
尽管返回值相当于一个元组,但是实际上它基于一个namedtuple,这是tuple的一个子类,除了可以通过索引访问,还支持通过命名属性访问URL的各部分,属性API不仅更易于程序猿使用,还允许访问tuple API未提供的很多值。
from urlparse import urlparse
url = 'http://user123:pwd@NetLoc:80/path;param?query=arg#frag'
parsed = urlparse(url)
print 'scheme : ', parsed.scheme
print 'netloc : ', parsed.netloc
print 'path : ' , parsed.path
print 'params : ',parsed.params
print 'query : ', parsed.query
print 'fragment : ', parsed.fragment
print 'username: ' , parsed.username
print 'password: ' , parsed.password
print 'hostname: ', parsed.hostname,'(netloc in lowercase)'
print 'port : ', parsed.port
结果:
scheme : http
netloc : user123:pwd@NetLoc:80
path : /path
params : param
query : query=arg
fragment : frag
username: user123
password: pwd
hostname: netloc (netloc in lowercase)
port : 80
[Finished in 0.3s]
2,urlsplit()函数可以替换urlparse(),但是表现稍有不同,大家可以自己测试
3,要想从一个URL剥离出片段标示符,如从一个URL查找基页面名,可以使用urldefrag(),可以讲frag分解出来。