# -*- coding: utf-8 -*- #python 27 #xiaodeng #urlparse模块(专门用来解析URL格式) #URL格式: #protocol ://hostname[:port] / path / [;parameters][?query]#fragment #parameters:特殊参数,一般用的很少。 #1、urlparse方法 #将url解析为6元组,返回一个ParseResult对象元组。 url='http://user:passwd@www.163.com:80/path;parameters?query=argument#fragment' import urlparse pase=urlparse.urlparse(url) print pase #ParseResult(scheme='http', netloc='user:passwd@www.163.com:80', path='/path', params='parameters', query='query=argument', fragment='fragment') #2、urlsplit方法 #返回一个SplitResult对象。如果url中没有[;parameters],建议使用urlsplit,更明确,更简洁。 pase=urlparse.urlsplit(url) print pase #SplitResult(scheme='http', netloc='user:passwd@www.163.com:80', path='/path;parameters', query='query=argument', fragment='fragment') #3、获取URL属性值等方法 url='http://user:passwd@www.163.com:80/path?query=argument#fragment' pase=urlparse.urlsplit(url) print pase.scheme#http print pase.netloc#user:passwd@www.163.com:80 print pase.path#/path print pase.query#query=argument print pase.username#user print pase.password#passwd print pase.hostname#www.163.com print pase.port#80 print pase.geturl()#http://user:passwd@www.163.com:80/path?query=argument#fragment #4、urljoin,进行合并url操作,给FAQ.html添加基础URL地址 print urlparse.urljoin('http://www.cwi.nl/%7Eguido/Python.html', 'FAQ.html') #'http://www.cwi.nl/%7Eguido/FAQ.html' #5、实例: url='http://api.k780.com:88/?app=weather.today&weaid=1&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml' pase=urlparse.urlsplit(url) print pase ''' SplitResult( scheme='http', netloc='api.k780.com:88', path='/', query='app=weather.today&weaid=1&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml', fragment='' ) '''