接口測試 | urllib篇 18 urllib介紹

2021-03-02 開源優測
概述

本文基於Python3分享urllib模塊的源碼分享,所以不要拿這python2來問我為什麼找不到對應的源碼。

在python3中urllib由以下幾個模塊構成:

parse

request

response

robotparser

error

下面對這個幾個模塊進行一一分享。

parse模塊

parse模塊定義了統一的接口並實現了URL解析和引用功能。

簡單的理解:parse模塊可以把url進行拆分或組合,下面我們看下示例:

__author__ = "苦葉子"

from urllib.parse import urlparse

if __name__ == "__main__":    print("urllib url切割實例")    url = "http://username:password@www.baidu.com:80/q=開源優測"    result = urlparse(url)    print("看下切割後的整體結果: ")    print(result)    print("協議: ", result.scheme)    print("連接字符串:", result.netloc)    print("埠號:", result.port)    print("uri資源:", result.path)    print("用戶名:", result.username)    print("密碼:", result.password)

通過上述實例,我們將學會如何將url中各個屬性進行切割出來。

對於parse模塊其他的功能,本文就不一一演示了,請參見官網學習。

requset模塊

這個模塊可以說是urllib最核心的模塊了,其定義了系列函數、類用於實現http/https相關協議功能。

下面我們看一個最問簡單的應用實例,後續結合實際的API進行深入實例演示:

__author__ = "苦葉子"

import urllib.request

if __name__ == "__main__":   print("讀取www.python.org首頁的html源碼")   response = urllib.request.urlopen("http://www.python.org")   print("列印下結果")   print(response.read())

通過運行上述代碼,將會在console看到一堆的html源碼的輸出顯示。

request模塊有著非常強大的功能,後續專門開闢一篇文章來分享。

response模塊

response模塊比較簡單,其定義了http response基本出來方法,作為基類存在,大家有興趣的可以研究下其源碼,了解去編碼風格及實現,有利於深入掌握如何處理http的返回值。

這裡不做實例演示,因為其提供的方法、功能主要在request模塊中進行了應用。

robotparser模塊

robotparser模塊提供了一個單獨的類:robotfileparser,用於處理robot.txt文件。

至於這個文件是幹嘛用的你可以訪問:http://www.robotstxt.org/norobots-rfc.txt 進行了解、學習。

當你需要研究爬蟲時,這個robots.txt是必須深入研究的東西。

error模塊

error模塊定義了url、http相關的錯誤基類,總共不到100行代碼,很簡潔,這裡就不做說明了。

小結

本文簡要的對urllib的組成進行了說明,後續結合實例進行演示分享,大家先通過本文了解下就好

相關焦點

  • Python 學習:urllib 簡介
    如果你有 Python 2 的知識,那麼你就會注意到 Python 2 中有 urllib 和 urllib2 兩個版本的模塊。這些現在都是 Python 3 的 urllib 包的一部分。當前版本的 urllib 包括下面幾部分:urllib.requesturllib.errorurllib.parseurllib.rebotparser接下來我們會分開討論除了 urllib.error 以外的幾部分。官方文檔實際推薦你嘗試第三方庫, requests,一個高級的 HTTP 客戶端接口。
  • Python爬蟲核心模塊urllib的學習
    urllib2時,系統提示你沒這個模塊),urllib2被合併到了urllib中,叫做urllib.request 和 urllib.error 。        urllib整個模塊分為urllib.request, urllib.parse, urllib.error。
  • python爬蟲基礎之urllib的使用
    這篇文章主要介紹了python爬蟲基礎之urllib的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下一
  • Python(34)常用指引:使用urllib包獲取網絡資源
    概述Related Articles關於使用 Python 獲取網頁資源,你或許還可以找到下列有用的文章:urllib.request 是一個用於獲取 URL (統一資源定位地址)的 Python 模塊。它以 urlopen 函數的形式提供了一個非常簡單的接口。該接口能夠使用不同的協議獲取 URL。
  • python 安全之 urllib 模塊
    python 的爬蟲腳本中經常用到的一個模塊,常用的還有 urllib3 ,requests 模塊等等,這裡先介紹 urllib。註:這裡使用的是 python3 的環境,在 python2 中,urllib 被分為 urllib,urllib2 等。用 urllib.request 模塊的 urlopen() 獲取頁面,page 的數據格式為 bytes 類型,需要 decode() 解碼,轉換成 str 類型。
  • Python爬蟲 | 0x6 - 請求庫:urllib
    兩個庫來實現請求發送,而在Python3中將這兩個庫合併到了一起,統一為urllib。它由下述四個模塊組成:可通過urllib.request模塊提供的urlopen()函數來構造一個HTTP請求,代碼示例如下:import urllib.requestresp = urllib.request.urlopen
  • Python爬蟲之urllib庫—爬蟲的第一步
    博主用的是Python3.x,urllib庫的結構相對於Python2.x有一些出入,Python2.x中使用的urllib2和urllib庫,而Python3.x中合併成一個唯一的urllib庫。 首先,我們來看看Python3.x的urllib庫都有什麼吧。博主用的IDE是Pycharm,編輯調試非常方便,很贊。
  • Python爬蟲常用庫之urllib詳解
    作者:sergiojune      個人公眾號:日常學python以下為個人在學習過程中做的筆記總結之爬蟲常用庫
  • python接口測試之urllib2的應用(十五)
    在接口測試中或者說在網絡爬蟲中,urllib2庫是必須要掌握的一個庫,當然還有優秀的requests庫,今天重點來說urllib2
  • Python網絡爬蟲(二)- urllib爬蟲案例
    # -*- coding:utf-8 -*-#引入需要的模塊import urllib #用於進行中文編碼import urllib2  #用於進行爬蟲核心處理#定義一個函數,用於爬取對應的數據def load_url(url,file_name):    '''    作用:針對指定的
  • Python網絡爬蟲之Urllib庫的使用
    如果將一個網頁比作一個人的話,HTML就是人的骨架,CSS就像是人的衣服,JS就是人的肌肉,所以最重要的就是HTML,下面我們就用簡單的兩行代碼來請求獲得百度首頁的HTML內容:執行該Python代碼,列印出來便是百度首頁的HTML內容:2 代碼解析這行代碼我們調用了urllib庫中
  • 乾貨丨Python接口測試自動化實戰及代碼示例:含get、post等方法
    最終選定 python 作為腳本開發語言,使用其自帶的 requests 和 urllib 模塊進行接口請求,使用優化後的 unittest 測試框架編寫測試接口函數,測試結果選用 HTMLTestRunner 框架予以展示,並使用 python 的 ssl 模塊支持 https 協議的驗證。接下來,我詳細地介紹這些模塊,並給出各個模塊完整的測試代碼。
  • Python接口測試之Requests
    在Python語言中,雖然提供了urllib2和urllib的庫,但是相比較而言,Requests任然是實現接口測試最好的選擇,因為它是用起來更加簡便。    在這裡重點介紹Requests中POST請求方法中請求參數data和請求參數json的區別,以及在實際工作中應用時的注意事項。