天天看點

urlparse子產品(專門用來解析URL格式)

# -*- 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:[email protected]:80/path;parameters?query=argument#fragment'
import urlparse
pase=urlparse.urlparse(url)
print pase
#ParseResult(scheme='http', netloc='user:[email protected]: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:[email protected]:80', path='/path;parameters', query='query=argument', fragment='fragment')




#3、擷取URL屬性值等方法
url='http://user:[email protected]:80/path?query=argument#fragment'
pase=urlparse.urlsplit(url)
print pase.scheme#http
print pase.netloc#user:[email protected]: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:[email protected]: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=''
)
'''