urllib.request 用法(1)
範例程式
import urllib.request
url = 'http://www.baidu.com/'
response = urllib.request.urlopen(url)
print(type(response))
print(type(response))
print(response.status) # 獲取狀態碼
print(response.info()) # 獲取回應頭
print(response.getcode()) # 獲取狀態碼
print(response.geturl()) # 獲取URL
print(response.read().decode('utf8'))
with open('baidu.html', 'wb') as f:
f.write(response.read())
-------------------------------------顥示結果 前 2項-------------------------------------------------------------
type(response) = <class 'http.client.HTTPResponse'>
response.status = 200
===================================================================
urllib.request
—用於打開URL的可擴展庫
urllib.request.
urlopen
(url,data = None,[ timeout,] *,cafile = None,capath = None,cadefault = False,context = None )- 打開URL url,它可以是字符串或 Request對象。數據必須是一個指定要發送到服務器的其他數據的對象,或者None如果不需要這種數據。有關Request 詳細信息,請參見。urllib.request模塊使用HTTP / 1.1,並Connection:close在其HTTP請求中包含標頭。可選的timeout參數以秒為單位指定用於阻止諸如連接嘗試之類的操作的超時(如果未指定,將使用全局默認超時設置)。這實際上僅適用於HTTP,HTTPS和FTP連接。如果指定了上下文,則它必須是ssl.SSLContext描述各種SSL選項的實例。請參閱HTTPSConnection 以獲取更多詳細信息。可選的cafile和capath參數為HTTPS請求指定一組受信任的CA證書。 cafile應該指向包含一堆 CA證書的單個文件,而capath應該指向哈希證書文件的目錄。可以在中找到更多信息ssl.SSLContext.load_verify_locations()。該cadefault參數被忽略。該函數總是返回一個可以用作上下文管理器的對象, 並具有諸如
geturl()
—返回所獲取資源的URL,通常用於確定是否遵循了重定向getcode()
–返迴響應的HTTP狀態代碼。
對於HTTP和HTTPS URL,此函數返回一個http.client.HTTPResponse稍作修改的 對象。除了上述三個新方法外,msg屬性包含與屬性相同的信息reason (服務器返回的原因短語),而不是文檔中指定的響應標頭 HTTPResponse。對於由舊版URLopener和FancyURLopener類顯式處理的FTP,文件和數據URL以及請求 ,此函數返回一個urllib.response.addinfourl對象。引發URLError協議錯誤。請注意,None如果沒有處理程序處理該請求,則可能會返回該值(儘管默認安裝的全局OpenerDirector用法 UnknownHandler可確保永遠不會發生此情況)。此外,如果檢測到代理設置(例如,當*_proxy 類似http_proxy已設置), ProxyHandler默認安裝,並確保通過代理處理請求。urllib.urlopenPython 2.6和更早版本的舊版功能已停產;urllib.request.urlopen()對應於舊的 urllib2.urlopen。urllib.urlopen可以通過使用ProxyHandler對象獲得通過 將字典參數傳遞給來完成的代理處理。首戰提出了一個默認的審計事件 urllib.Request帶參數fullurl,data,headers, method從請求對象獲取。在版本3.2中更改:添加了cafile和capath。在版本3.2中進行了更改:如果可能(如果ssl.HAS_SNI為true),現在支持HTTPS虛擬主機 。3.2版中的新功能:數據可以是可迭代的對象。在版本3.3中更改:添加了cadefault。在版本3.4.3中更改:添加了上下文。自版本3.6起不推薦使用:不推薦使用cafile,capath和cadefault,而推薦使用context。請ssl.SSLContext.load_cert_chain()改用,或者讓 ssl.create_default_context()您為您選擇系統的受信任CA證書。
沒有留言:
張貼留言