五、urllib.request.urlopen()

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

 

urllib.request定義瞭如下函數:python

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

參數服務器

打開url連接,能夠是字符串或者是Request對象。函數

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

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

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

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

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

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完成的代理處理。

相關文章
相關標籤/搜索