在爬蟲抓取網(wǎng)頁數(shù)據(jù)的時候,會直接利用http模塊來模擬瀏覽器訪問URL昂利。在Python3中對Http模塊被封裝到http.client中了坚冀。在http.client中有2個主要的類:HttpConnection和HttpsConnection。HttpConnection主要處理Http協(xié)議的URL惊畏,HttpsConnection用來處理Https協(xié)議的URL舀透。由于Https采用SSL對數(shù)據(jù)進(jìn)行加密栓票,我們在與服務(wù)器建立連接時,需要制定我么的SSL協(xié)議盐杂,來獲取服務(wù)器的公開密鑰逗载。簡單代碼如下:
from http.client import HTTPSConnection
import ssl
myhost ="yourserver"
ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
#建立連接,獲取服務(wù)器的公開密鑰
conn = HTTPSConnection(host=myhost, context=ctx)
#通過Http協(xié)議訪問链烈,我們需要訪問的Https厉斟,并得到返滬的代碼
#根據(jù)需要可以模擬https請求的header,cookie等
conn.request(method='GET', url='https://yourserver')
res = conn.getresponse()
print(res.read().decode('utf-8'))