urlparse模塊主要是用於解析url中的參數 對url按照一定格式進行 拆分或拼接
1.urlparse.urlparse
將url分為6個部分,返回一個包含6個字符串項目的元組:協議、位置、路徑、參數、查詢、片段。
1
2
3
|
import
urlparse
url_change
=
urlparse.urlparse(
'https://i.cnblogs.com/EditPosts.aspx?opt=1'
)
print
url_change
|
輸出結果為:
ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')
其中 scheme 是協議 netloc 是域名服務器 path 相對路徑 params是參數,query是查詢的條件
urlparse.parse_qs(urlparse.urlparse(url).query)
這個是獲取urlparse分割后元祖中的某一項 urlparse.urlparse(url).query 獲取查詢條件
parse_qs 有幾種實現
urlparse.parse_qs 返回字典
urlparse.parse_qsl 返回列表
2. urlparse.urlsplit
和urlparse差不多,將url分為5部分,返回一個包含5個字符串項目的元組:協議、位置、路徑、查詢、片段。
import urlparse url_change = urlparse.urlsplit('https://i.cnblogs.com/EditPosts.aspx?opt=1') print url_change
SplitResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', query='opt=1', fragment='')
其中 scheme 是協議 netloc 是域名服務器 path 相對路徑 query是查詢的條件
3.urlparse.urljoin
將相對的地址組合成一個url,對於輸入沒有限制,開頭必須是http://,否則將不組合前面。
import urlparse new_url = urlparse.urljoin('https://baidu.com/ssss/','88888') print new_url
輸出 https://baidu.com/ssss/88888
如果輸入錯誤信息 如 new_url = urlparse.urljoin('122','88888') 並不會將兩者合並 輸出‘88888’
最后一點 urlparse 這個模塊在 python 3.0 中 已經改名為 urllib.parse
官方文檔地址 http://docs.python.org/library/urlparse.html