一、簡介
urlparse模塊用戶將url解析為6個組件,並以元組形式返回,返回的6個部分,分別是:scheme(協議)、netloc(網絡位置)、path(路徑)、params(路徑段參數)、query(查詢)、fragment(片段)。
二、功能列舉
1、urlparse.urlparse()(將url解析為組件,url必須以http://開頭)
>>> urlparse.urlparse("https://i.cnblogs.com/EditPosts.aspx?opt=1") ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')
返回的元素中也會包含其他屬性,比如(username,password,hostname,port):
>>> urlparse.urlparse("https://i.cnblogs.com:80/EditPosts.aspx?opt=1").port 80
>>> urlparse.urlparse("https://i.cnblogs.com:80/EditPosts.aspx?opt=1").hostname 'i.cnblogs.com'
2、urlparse.urljoin()(將相對的地址組合成一個url,對於輸入沒有限制,開頭必須是http://,否則將不組合前面)
>>> urlparse.urljoin("https://i.cnblogs.com","EditPosts.aspx") 'https://i.cnblogs.com/EditPosts.aspx'
3、urlparse.urlsplit() :返回一個5個元素的元組,適用於遵循RFC2396的URL
>>> urlparse.urlsplit("https://i.cnblogs.com:80/EditPosts.aspx?opt=1") SplitResult(scheme='https', netloc='i.cnblogs.com:80', path='/EditPosts.aspx', query='opt=1', fragment='')
4、urlparse.urlunsplit() : 使用urlsplit的格式組合成一個url,傳遞的元素必須是5個,或者直接將分解的元組重新組合
>>> urlparse.urlunsplit(("https","i.cnblogs.com","EditPosts.aspx","a=a","b=b")) 'https://i.cnblogs.com/EditPosts.aspx?a=a#b=b'
>>> parse = urlparse.urlsplit("https://i.cnblogs.com:80/EditPosts.aspx?opt=1") >>> urlparse.urlunsplit(parse) 'https://i.cnblogs.com:80/EditPosts.aspx?opt=1'
5、urlparse.urlunparse() :使用urlparse的格式組合成一個url,可以直接將urlparse的返回傳遞組合
>>> parse = urlparse.urlparse("https://i.cnblogs.com:80/EditPosts.aspx?opt=1") >>> urlparse.urlunparse(parse) 'https://i.cnblogs.com:80/EditPosts.aspx?opt=1'
>>> urlparse.urlunparse(("https","i.cnblogs.com","/EditPosts.aspx","","opt=1","")) 'https://i.cnblogs.com/EditPosts.aspx?opt=1'