python如何访问https
问题来源于python学习网
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在爬虫抓取网页数据的时候,会直接利用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'))
问题来源于python学习网