问题:
爬取https麻烦肯定是比http只多不少的,那为什么我们不把https换成http?
爬取某些https链接时会报requests.exceptions.SSLError的错误,但是只要不验证就可以解决(verify=False),那么https还会比http安全吗?
解疑:
如果爬过百度或者csdn你会发现链接中用http和https根本没区别,爬取到的结果是一样的。既然这样,我们爬取的所有网站都把https换成http岂不美哉?既不会报SSLError错误也不会警告,但是这显然是不可能的。因为是网站决定你用http协议还是https协议,如果网站不允许你用http协议,在爬取时url还是http://xxxxx.xxx那么是不会得到想要的页面的。
其实verify=False作用就相当于在浏览某个https网站时浏览器对你拦截警告后,你点击了继续前往。但是不代表着他这个网站的证书是摆设,该加密传输还是会加密传输。那为什么浏览器还警告该网站不安全呢?因为浏览器收到的证书不是可信机构列表里的机构颁发的,他有可能是野生机构颁发的证书,也有可能是个人自制的证书,还有可能是黑客的证书。所以浏览器警告不安全主要是因为怕给你证书的可能不是网站服务器而是黑客。
写的有点乱,当时疑问比较多,然后突然就想通了,没有第一时间写出来,忘记当时都有哪些疑惑了。