5、urllib.request.urlopen()


官方文檔鏈接:https://docs.python.org/3/library/urllib.request.html

 

urllib.request定義了以下函數:

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

參數

打開url鏈接,可以是字符串或者是Request對象。

data必須是一個定義了向服務器所發送額外數據的對象,或者如果沒有必要數據的話,就是None值。可以查閱Request獲取詳細信息。

url.request模塊在HTTP請求中使用了HTTP/1.1,並且包含了Connection:close頭部。

可選的timeout參數指定阻止諸如連接嘗試等操作的超時時間(以秒為單位)(如果未指定,將使用全局默認超時設置)。這實際上只適用於HTTP,HTTPS和FTP連接。

 如果指定了context,則它必須是描述各種SSL選項的ssl.SSLContext實例。 有關更多詳細信息,請參閱HTTPSConnection。

可選的cafilecapath參數為HTTPS請求指定一組可信的CA證書。 cafile應指向包含一系列CA證書的單個文件,而capath應指向散列證書文件的目錄。 更多信息可以在ssl.SSLContext.load_verify_locations()中找到。

cadefault參數被忽略。

返回值:

該函數總是返回一個可以作為context manager使用的對象,並且具有方法,例如;

geturl()-返回檢索的資源的URL,通常用於確定是否遵循重定向;

info()-以email.message_from_string()實例的形式返回頁面的元信息(如headers)(可快速參考HTTP Headers);

getcode()-返回響應的HTTP狀態碼。

 

對於HTTP和HTTPS URL,此函數返回稍微修改的http.client.HTTPResponse對象。 除上述三種新方法之外,msg屬性還包含與reason屬性(服務器返回的原因短語)相同的信息,而不是HTTPResponse文檔中指定的響應標頭。

對於由傳統URLopener和FancyURLopener類明確處理的FTP,文件和數據URL和請求,此函數返回一個urllib.response.addinfourl對象。

在協議錯誤上引發URLError。

請注意,如果沒有處理請求的handler,則可能返回None(盡管默認安裝的全局OpenerDirector使用UnknownHandler來確保永不發生這種情況)。

另外,如果檢測到代理設置(例如,如果設置了諸如http_proxy的* _proxy環境變量),則默認安裝ProxyHandler,並確保通過代理處理請求。

來自Python 2.6及更早版本的遺留urllib.urlopen函數已停止使用; urllib.request.urlopen()對應於舊的urllib2.urlopen。 通過使用ProxyHandler對象可以獲得通過將字典參數傳遞給urllib.urlopen完成的代理處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM