1、urlparse:(python標準庫中的一個模塊,解析和操作url)
標準的url鏈接格式:scheme://netloc/path;params?query#fragment
scheme(協議) http or https
netloc(網絡位置) host
path(路徑)
params(攜帶的參數)
query(查詢參數)
fragment(片段) 內部導航2、urlunparse(組合)
http://www.baidu.com/index.html;user?id=0#comment3、urlsplit(和urlparse不同的是 它不解析查詢參數和片段部分,只分割url返回的是一個元組類型,可以用索引來取)
4、urlunsplit
5、urljoin? ?將一個相對URL 解析成一個絕對的url,base參數: 基本url,通常是一個絕對的url;url參數:這個是相對的url
結論:base_url 提供了三項內容 scheme、netloc 和 path。如果這 3 項在新的鏈接里不存在,就予以補充;如果新的鏈接存在,就使用新的鏈接的部分。而 base_url 中的 params、query 和 fragment 是不起作用的。
6、parse_qs(get參數的序列化)
7、parse_qsl(將參數轉為元組組成列表)
8、quote(url編碼)
9、unquote(url解碼)
#!/usr/bin/env python3from urllib.parse import urlparse, urlunparse, urlsplit, urlunsplit, urljoin, parse_qs, parse_qsl, quote, unquoteurl = 'http://www.baidu.com/index.html;user?id=0#comment'# 1、############urlparse# 輸出URL網址的標準組成:scheme://netloc/path;params?query#fragment
response = urlparse(url=url)
print(response)
print(response.scheme)
print(response.netloc)
print(response.path)
print(response.params)
print(response.query)
print(response.fragment)result = urlparse(url=url, scheme='https', allow_fragments=False)
print(result.scheme)
print(result.fragment)# 2、############urlunparsedata = ['http', 'www.baidu.com', 'index.html', 'user', 'id=0', 'comment']
result = urlunparse(data)
print(result)# 3、############urlsplitresponse = urlsplit(url)
print(result)
print(response.scheme)
print(response[1])
print(response.netloc)
print(response.path)
print(response.query)
print(response.fragment)# 4、############urlunsplitdata = ('http', 'www.baidu.com', 'index.html', 'id=0', 'comment')
result = urlunsplit(data)
print(result)# 5、############urljoinbase_url = 'https://www.baidu.com'
relative = '/path/to/xxx'
result = urljoin(base_url, relative)
print(result)
print(urljoin('https://www.baidu.com', '/FAQ.html'))
print(urljoin('https://www.baidu.com', 'http://mashibing.com/FAQ.html'))
print(urljoin('https://www.baidu.com/admin.html', 'http://mashibing.com/FAQ.html'))
print(urljoin('https://www.baidu.com?wd=aaa', '?user=1#comment'))
print(urljoin('https://www.baidu.com#comment', '?user=1'))# 6、############parse_qsquery = 'name=handsomewangbo&age=18'
result = parse_qs(query)
print(result)# 7、############parse_qslquery = 'name=handsome_wangbo&age=18'
result = parse_qsl(query)
print(result)# 8、############quotekey = "帥哥"
result = url + quote(key)
print(result)# 9、############unquoteprint(unquote(result))