在爬虫抓取网页数据的时候,会直接利用http模块来模拟浏览器访问URL。在Python3中对Http模块被封装到http.client中了。在http.client中有2个主要的类:HttpConnection和HttpsConnection。HttpConnection主要处理Http协议的URL,HttpsConnection用来处理Https协议的URL。由于Https采用SSL对数据进行加密,我们在与服务器建立连接时,需要制定我么的SSL协议,来获取服务器的公开密钥。简单代码如下:
from http.client import HTTPSConnection
import ssl
myhost ="yourserver"
ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
#建立连接,获取服务器的公开密钥
conn = HTTPSConnection(host=myhost, context=ctx)
#通过Http协议访问,我们需要访问的Https,并得到返沪的代码
#根据需要可以模拟https请求的header,cookie等
conn.request(method='GET', url='https://yourserver')
res = conn.getresponse()
print(res.read().decode('utf-8'))