官方文檔連接: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
可選的cafile和capath參數爲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完成的代理處理。