当前位置:   article > 正文

HTTPSConnectionPool(host=‘xxxxx‘, port=443) 解决思路

port=443

HTTPSConnectionPool(host=‘xxxxx‘, port=443) 解决思路

原因 SSL 证书报错

http连接太多没有关闭导致的。
经过一番查询,发现该错误是因为如下:
http的连接数超过最大限制,默认的情况下连接是Keep-alive的,所以这就导致了服务器保持了太多连接而不能再新建连接。
 
    1、ip被封
    2、程序请求速度过快。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

解决方式
(1)time.sleep()

(2)关闭 SSL 验证 verify=False

response = requests.get(fpath_or_url,headers=headers,stream=True, verify=False)
  • 1

(3) requests默认是keep-alive的,可能没有释放,加参数 headers={‘Connection’:‘close’}

TODO ssl证书报错,参数 verify=False,同时,requests默认是keep-alive的,可能没有释放,加参数
        sess = requests.Session()
        sess.mount('http://', HTTPAdapter(max_retries=3)) 
        sess.mount('https://', HTTPAdapter(max_retries=3))     
        sess.keep_alive = False # 关闭多余连接
        
        text = requests.get(self.target_img_url, headers=headers, stream=True, verify=False, timeout=(5,5)) #  connect 和 read 二者的 timeout,所以是一个数组
        
        with open(img_files_path, 'wb') as file:
            for i in text.iter_content(1024 * 10):
                file.write(i)
                
        text.close() # 关闭,很重要,确保不要过多的链接
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

(4) 改变重连次数 requests.adapters.DEFAULT_RETRIES = 5

        try:
            headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',
            }
            # TODO 增加连接重试次数(一共4次链接)
            sess = requests.Session()
            sess.mount('http://', HTTPAdapter(max_retries=3)) 
            sess.mount('https://', HTTPAdapter(max_retries=3))     
            sess.keep_alive = False # 关闭多余连接
            
            text = requests.get(self.target_img_url, headers=headers, stream=True, verify=False, timeout=(5,5)) # connect 和 read 二者的 timeout,所以是一个数组
             
            with open(img_files_path, 'wb') as file:
                for i in text.iter_content(1024 * 10):
                    file.write(i)
                    
            text.close() # 关闭,很重要,确保不要过多的链接
 
        except Exception as e:
            print(e,self.target_img_url)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

(5) 其他 忽略警告信息

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/478724
推荐阅读
相关标签
  

闽ICP备14008679号