解析鏈接
-
urlparse
解析url,將一個url解析為六個部分分別為
scheme、netloc、path、params、query、fragment。
例子如下:
from urllib.parse import urlparse result = urlparse('http://www.baidu.com/index.html;user?id=5#comment') print(type(result), result)
結果是<class 'urllib.parse.ParseResult'> ParseResult(scheme='http', netloc='www.baidu.com', path='/index.html', params='user', query='id=5', fragment='comment')
-
urlunparse
它接受的參數是一個可迭代對象,但是它的長度必須是 6,否則會拋出參數數量不足或者過多的問題。
例子如下:
from urllib.parse import urlunparse data = ['http', 'www.baidu.com', 'index.html', 'user', 'a=6', 'comment'] print(urlunparse(data))
結果輸出一個url為http://www.baidu.com/index.html;user?a=6#comment
-
urlsplit
這個和 urlparse() 方法非常相似,只不過它不會單獨解析 parameters 這一部分,只返回五個結果。
-
urlunsplit
與 urlunparse() 類似,也是將鏈接的各個部分組合成完整鏈接的方法,傳入的也是一個可迭代對象,例如列表、元組等等,唯一的區別是,長度必須為 5。
-
urljoin
生成鏈接還有另一個方法,利用 urljoin() 方法我們可以提供一個 base_url(基礎鏈接),新的鏈接作為第二個參數,方法會分析 base_url 的 scheme、netloc、path 這三個內容對新鏈接缺失的部分進行補充,作為結果返回。
-
urlencode
我們首先聲明了一個字典,將參數表示出來,然后調用 urlencode() 方法將其序列化為 URL 標准 GET 請求參數。
-
parse_qs
有了序列化必然就有反序列化,如果我們有一串 GET 請求參數,我們利用 parse_qs() 方法就可以將它轉回字典
-
parse_qsl
parse_qsl() 方法可以將參數轉化為元組組成的列表
-
quote
quote() 方法可以將內容轉化為 URL 編碼的格式,有時候 URL 中帶有中文參數的時候可能導致亂碼的問題,所以我們可以用這個方法將中文字符轉化為 URL 編碼。
-
unquote
有了 quote() 方法當然還有 unquote() 方法,它可以進行 URL 解碼。
文章參考鏈接:python3網絡爬蟲開發實戰