【问题标题】:Max retries exceeded with url Python Requestsurl Python Requests 超出了最大重试次数
【发布时间】:2018-02-19 13:04:39
【问题描述】:

我的代码出现此错误。我每天运行我的代码,从来没有任何问题,但现在,如果我运行它,我有一个Max retries exceeded with url。如果我从另一台计算机上运行它,一切正常并下载我的文件,所以我无法理解发生了什么。 我尝试了这个问题:Python Requests HTTPConnectionPool and Max retries exceeded with url 和这个问题:Python requests max retries exceeded with url 但任何人都无法告诉我如何解决它。

Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/adapters.py", line 506, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='url', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, u'[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:661)'),))

我的代码:

# encoding=utf8
# -*- coding: utf-8 -*-
import random
import requests
from requests.auth import HTTPBasicAuth
import sys
import pandas as pd
import datetime
from datetime import date
from dateutil.relativedelta import relativedelta
import os

reload(sys)
sys.setdefaultencoding('utf-8')
number = str(random.random())
url = 'url'

today = date.today()
d = today - relativedelta(months=1)
d2 = today - relativedelta(months=2)

inicio_mes_pasado = date(d.year, d.month, 1).strftime("%d/%m/%Y") # Fecha Inicial
final_mes_pasado = (datetime.date.today().replace(day=1)+datetime.timedelta(days=-1)).strftime("%d/%m/%Y") # Fecha Final

inicio_mes_pasado2 = date(d2.year, d2.month, 1).strftime("%d/%m/%Y") # Fecha Inicial 2 meses antes
final_mes_pasado2 = (date(d.year, d.month, 1) - relativedelta(days=1)).strftime("%d/%m/%Y") # Fecha Final 2 meses antes



cuenta = ['@']

for itemm in cuenta:
    user = '{}'.format(itemm)
    passwd = 'pass'
    login = requests.get(url, auth=HTTPBasicAuth(user, passwd))
    # Espacios
    url_espacios = 'url{}'.format(final_mes_pasado)
    espacios = requests.get(url_espacios, auth=HTTPBasicAuth(user, passwd))
    f = open("Espacios_{}.csv".format(itemm), "w")
    f.write(((((espacios.text.replace('.','')).replace(',','.')).replace('%', '')).replace(';',',')).replace('"',''))
    f.close()
    df = pd.read_csv("Espacios_{}.csv".format(itemm))

【问题讨论】:

  • 您使用的是 OS X 还是其他操作系统(如 linux)?
  • 我正在使用 OS X @Tom
  • 看看我的回答,可能会有帮助。

标签: python


【解决方案1】:

您的问题可能是 OS X 默认 OpenSSL 版本。

如果这是问题所在,您有几个选择:

1) 尝试使用 python 3(而不是 2.7)运行相同的代码。

2) 通过从自制软件安装它来更新您的 OpenSSL 版本 - 在此处查看更多信息:https://github.com/requests/requests/issues/2022

【讨论】:

    【解决方案2】:

    从 2.7.15 开始,所有 python.org macOS 安装程序都附带 OpenSSL 的内置副本

    -- https://www.python.org/downloads/release/python-2715/

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      • 2013-08-30
      • 2020-07-11
      • 2020-03-16
      • 2021-04-03
      • 2014-07-25
      • 1970-01-01
      相关资源
      最近更新 更多