urlparse系列函式處理URL

2021-08-21 04:36:30 字數 2419 閱讀 7864

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基位址以字元/結尾。

>>> import urlparse

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

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

'/index.php'

U盤系列 之U盤掛載資訊的獲取

程式內讀取 etc mtab或者 proc mounts,解析字串較為繁瑣,可以使用mntent提供的方便函式 file setmntent const char filename,const char type struct mntent getmntent file filep int endm...

U盤防毒 批處理

u盤防毒批處理加強版 echo off 轉換分割槽格式為ntfs convert cd 0,2 fs ntfs 建立資料夾 ifnot exist autorun inf mdautorun inf 建立無法刪除的資料夾 mdautorun inf tomtaw 複製檔案,防止資料夾被刪除 echo...

ThinkPHP函式詳解 U方法

u方法用於完成對url位址的組裝,特點在於可以自動根據當前的url模式和設定生成對應的url位址,格式為 u 位址 引數 偽靜態 是否跳轉 顯示網域名稱 在模板中使用u方法而不是固定寫死url位址的好處在於,一旦你的環境變化或者引數設定改變,你不需要更改模板中的任何 在模板中的呼叫格式需要採用 的方...