urlparse:定義了url的標準接口,實現url的各種抽取
import urllib.parse as parse
url = 'https://www.baidu.com/s?ie=utf-8&tn=baidu&wd=%E7%BE%8E%E5%A5%B3#a'
result = parse.urlparse(url)
print(result)
print(result.scheme)
# scheme:表示協議
# netloc:域名
# path:路徑
# params:參數
# query:查詢條件,一般都是get請求的url
# fragment:錨點,用于直接定位頁面的下拉位置,跳轉到網頁的指定位置
# urlparse的其他參數:
# urlstring:這是必填項,待解析的url
# scheme:默認的協議(http或者是https,假如要解析的連接沒有帶協議那么我們可以設置這個為默認的協議)
# all_fragments:是否忽略錨點,如果忽略的話會被解析為path或者是query的一部分(就近原則,跟誰近就屬于誰)
urlunparse:與上面的方法相反,是構造一個url
# 注意參數的格式必須符合上面的打印規則,如果沒有對應的部分那么就直接設置為空字符串
# (scheme='https', netloc='www.baidu.com', path='/s', params='', query='ie=utf-8&tn=baidu&wd=%E7%BE%8E%E5%A5%B3', fragment='a')
urls = ('https','www.baidu.com','s','','ie=utf-8&tn=baidu&wd=%E7%BE%8E%E5%A5%B3','')
full_url = parse.urlunparse(urls)
print(full_url
urljoin:這個方法是完成連接的合并,不過全體是得有特定的長度
# 我們可以提供一個基類的baseurl
# 然后再提供一個不完整的url這時候實現url的評接
#使用場景見(貓眼電影網)
base_url = 'https://www.baidu.com/index.html'
son_url = 'baidu/index.html'
fullurl = parse.urljoin(base_url,son_url)
print(fullurl)
urlencode():將字典形式的參數序列化為url的編碼格式k1=v1&k2=v2
data = {
'name':'liwenhao',
'password':'123456'
}
data = parse.urlencode(data).encode('UTF-8')
print(data)
parse_qs:方法是將url的編碼格式反序列化為字典類型
data_dict = parse.parse_qs(data)
print(data_dict)
for k,v in data_dict.items():
print(k.decode('UTF-8'))
print(v[0].decode('UTF-8'))
quote:可以將中文參數轉換為URL編碼的格式
url = 'https://www.baidu.com/s?wd=' + parse.quote('美女')
url = parse.unquote(url)
print(url)
unquote:對url進行解碼
url = 'https://www.baidu.com/s?wd=%E8%B1%86%E7%93%A3'
url = parse.unquote(url)
print(url)