Python URL解析 urlparse學習

2021-07-07 05:22:17 字數 4637 閱讀 3373

urlparse模組主要是把url拆分為6部分,並返回元組。並且可以把拆分後的部分再組成乙個url。主要有函式有urljoin、urlsplit、urlunsplit、urlparse等。 

urlparse.urlparse(urlstring[, scheme[, allow_fragments]]) 將

urlstring

解析成6個部分,它從urlstring中取得url,並返回元組 (scheme, netloc, path, parameters, query, fragment),但是實際上是基於namedtuple,是tuple的子類。它支援通過名字屬性或者索引訪問的部分url,每個元件是一串字元,也有可能是空的。元件不能被解析為更小的部分,%後面的也不會被解析,分割符號並不是解析結果的一部分,除非用斜線轉義,注意,返回的這個元組非常有用,例如可以用來確定網路協議(http、ftp等等 )、伺服器位址、檔案路徑,等等。

從乙個元組構建乙個url,元組類似urlparse返回的,它接收元組(scheme, netloc, path, parameters, query, fragment)後,會重新組成乙個具有正確格式的url,以便供python的其他html解析模組使用。

主要是分析

urlstring

,返回乙個包含5個字串專案的元組:協議、位置、路徑、查詢、片段。allow_fragments為false時,該元組的組後乙個專案總是空,不管

urlstring

有沒有片段,省略專案的也是空。urlsplit()和urlparse()差不多。不過它不切分url的引數。適用於遵循rfc2396的url,每個路徑段都支援引數。這樣返回的元組就只有5個元素。

使用urlsplit()返回的值組合成乙個url

urlparse.urljoin(base, url[, allow_fragments])

urljoin

主要是拼接url,它以

base

作為其基位址,然後與

url中的相對位址相結合組成乙個絕對url位址。函式urljoin在通過為url基位址附加新的檔名的方式來處理同一位置處的若干檔案的時候格外有用。需要注意的是,如果基位址並非以字元/結尾的話,那麼url基位址最右邊部分就會被這個相對路徑所替換。如果希望在該路徑中保留末端目錄,應確保url基位址以字元/結尾。 ?

12

3

4

5

>>>importurlparse

>>> urlparse.urljoin('','index.php')

''

>>> urlparse.urljoin('/','index.php')

'/index.php'

python url中文亂碼

1.url 只允許一部分 ascii 字元 數字字母和部分符號 其他的字元 如漢字 是不符合 url 標準.所以 url 中使用其他字元就需要進行 url 編碼。2.通常 url 編碼是基於 utf 8 的 當然這和瀏覽器平台有關 比如 我 unicode 為 0x6211,utf 8 編碼為 0x...

Python Url編碼和解碼

一 為什麼要進行url編碼 url帶引數的請求格式為 舉例 當請求資料為字典data 且引數中包含中文或者?等特殊符號時,通過url編碼,將data轉化為特定格式k1 v1 k2 v2,並且將中文和特殊符號進行編碼,避免發生歧義 二 url編碼 1 urlencode from urllib imp...

Python Url編碼和解碼

一 為什麼要進行url編碼 url帶引數的請求格式為 舉例 當請求資料為字典data 且引數中包含中文或者?等特殊符號時,通過url編碼,將data轉化為特定格式k1 v1 k2 v2,並且將中文和特殊符號進行編碼,避免發生歧義 二 url編碼 1 urlencode from urllib imp...