欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python利用yarl實現輕松操作url

 更新時間:2022年10月23日 14:29:12   作者:費弗里  
在諸如網絡爬蟲、web應用開發(fā)等場景中,我們需要利用Python完成大量的url解析、生成等操作。本文為大家介紹了Pythonyarl操作url的方法,需要的可以了解一下

1.簡介

大家好我是費老師,在諸如網絡爬蟲、web應用開發(fā)等場景中,我們需要利用Python完成大量的url解析、生成等操作。

而在Python生態(tài)中,無論是使用諸如urllib之類的標準庫,還是各種第三方庫,可以用來有效處理url的方法都非常之豐富。而今天費老師我要給大家介紹的url處理庫,則是我在實際使用中綜合考慮簡單易用性與運算速度后,最為滿意的。

2.在Python中利用yarl高效處理url

這個可以用來高效便捷處理url的第三方庫叫做yarl,使用pip install yarl完成安裝后,下面我們來快速學習其主要的一些功能方法:

2.1 利用yarl解析url信息

基于yarl中的URL(),我們可以從任意合法的url中解析出下圖所示的各個構成部分:

先來看一個簡單的例子,其中對我保管每一篇博客文章附件的github倉庫路徑url進行解析:

from yarl import URL

url = URL('https://github.com/CNFeffery/DataScienceStudyNotes/tree/master/%E5%8E%86%E5%8F%B2%E6%96%87%E7%AB%A0%E9%99%84%E4%BB%B6%E5%88%97%E8%A1%A8')

原始的網址由于包含了中文等非ASCII字符,所以粘貼到代碼中后變成了url編碼后的樣子,直接調用human_repr()方法即可進行解碼還原:

而通過獲取對應url各部分名稱的屬性,即可分別提取出相應信息:

其中端口信息是基于scheme信息按照常規(guī)情況進行推斷的,http即為80,https即為443,若需要獲取url中顯式出現的端口信息,可以使用explicit_port

針對url中的hash標簽信息則可以通過fragment取得:

若要解析的url中包含query參數信息,則可以直接調用query得到MultiDict類型的返回結果,這是種特殊的字典類型,它允許存在重復的鍵,對于不存在重復的鍵值對,可以像普通字典那樣索引值,否則則需要通過getall()方法來返回所傳入鍵對應的所有值列表:

可以感受到通過yarl解析url非常的方便~

2.2 利用yarl構造url

當我們需要基于已有的各部分信息構造url時,yarl就更加方便了,基礎的方式是基于URL.build()方法,以函數傳參的方式定義url

而如果你已經有了具體存在的yarl.URL對象,想在此基礎上進行其他部分內容的設置,則可以使用一系列名稱格式為with_xxx()的方法,其中xxx就對應著各個部分的名稱:

特別地,針對查詢參數部分,還專門有update_query()方法進行參數追加,它與with_query()的區(qū)別可以從下面的例子中體會到:

2.3 利用/、%運算符快捷合成url

yarl中,針對/、%運算符進行了重寫,以支持類似下面例子的快捷操作,非常的方便:

除了上面介紹的yarl常用功能以外,還有譬如利用is_absolute()方法判斷url是否為絕對路徑等其他實用功能,感興趣的讀者朋友們可以前往官方文檔了解更多(https://yarl.aio-libs.org/en/latest/index.html)。

到此這篇關于Python利用yarl實現輕松操作url的文章就介紹到這了,更多相關Python yarl操作url內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • tensorflow從ckpt和從.pb文件讀取變量的值方式

    tensorflow從ckpt和從.pb文件讀取變量的值方式

    這篇文章主要介紹了tensorflow從ckpt和從.pb文件讀取變量的值方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python中三種時間格式轉換的方法

    Python中三種時間格式轉換的方法

    本文主要介紹了Python中三種時間格式轉換的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • python中Task封裝協程的知識點總結

    python中Task封裝協程的知識點總結

    在本篇內容里小編給大家總結的是一篇關于python中Task封裝協程的知識點總結內容,有興趣的朋友們可以跟著學習下。
    2021-07-07
  • django創(chuàng)建超級用戶過程解析

    django創(chuàng)建超級用戶過程解析

    這篇文章主要介紹了django創(chuàng)建超級用戶過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • 屬性與 @property 方法讓你的python更高效

    屬性與 @property 方法讓你的python更高效

    這篇文章主要介紹了python 屬性與 @property 方法的相關資料,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-09-09
  • python3獲取控制臺輸入的數據的具體實例

    python3獲取控制臺輸入的數據的具體實例

    在本篇內容里小編給大家分享的是一篇關于python3獲取控制臺輸入的數據的具體實例內容,需要的朋友們可以學習下。
    2020-08-08
  • Python格式化字符串f-string的使用教程

    Python格式化字符串f-string的使用教程

    這篇文章主要為大家詳細介紹了Python中格式化字符串f-string的使用教程,文中通過示例為大家進行了詳細的介紹,需要的可以參考一下
    2022-07-07
  • HTML的form表單和django的form表單

    HTML的form表單和django的form表單

    這篇文章主要介紹了HTML的form表單和django的form表單,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Python 可視化神器Plotly詳解

    Python 可視化神器Plotly詳解

    這篇文章主要介紹了Python 可視化神器Plotly詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 使用Python Pandas處理億級數據的方法

    使用Python Pandas處理億級數據的方法

    這篇文章主要介紹了使用Python Pandas處理億級數據的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06

最新評論