在上一節,使用了Python自帶的功能啟動了一個HTTP服務器,并通過瀏覽器瀏覽到了這個HTTP服務器提供的頁面。在瀏覽的過程中,實際上是瀏覽器向HTTP服務器發送了一個HTTP請求。
除了使用瀏覽器發送HTTP請求,通過代碼也可以向HTTP服務器發送請求,Python提供了相關的庫urllib,通過urllib包里面的request,可以向其他HTTP服務器發起請求。
from urllib import request response = request.urlopen('http://www.xianlaiwan.cn') # 向慕課網官網發出請求 print(response) # ==> <http.client.HTTPResponse object at 0x000001377D631948>
請求成功的話,會得到一個HTTPResponse,它是來自HTTP服務器的一個回應,可以把這個回應的一些信息打印出來。
狀態碼:
print(response.status) # ==> 200
狀態碼是一個三位整數,在HTTP協議的標準里面,定義了很多狀態碼,其中200表示請求是正常的。
響應頭:
?for k, v in response.getheaders(): print('{}: {}'.format(k, v))
將會輸出以下信息,這是HTTPResponse附帶的一些信息,包括服務端的服務器是什么、請求時間、內容類型、內容長度等等。
Server: openresty Date: Thu, 20 Aug 2020 08:16:07 GMT Content-Type: text/html; charset=UTF-8 Content-Length: 376639 Connection: close Vary: Accept-Encoding Vary: Accept-Encoding X-Varnish: 280516221 281284036 Age: 29 Via: 1.1 varnish (Varnish/6.0) X-Cache: HIT from CS42 Accept-Ranges: bytes
請使用Python自帶的功能,啟動一個HTTP服務器,并使用urllib請求這個服務器,打印出狀態碼和回應頭,并嘗試分析這些信息。
1. 請在本地編寫代碼練習
2. 通過python -m http.server啟動一個HTTP服務器
3. 通過urllib request請求對應的地址
請驗證,完成請求
由于請求次數過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報