【问题标题】:Python - ConnectionRefusedError, urllib3.exceptions.NewConnectionError and ColoramaPython - ConnectionRefusedError、urllib3.exceptions.NewConnectionError 和 Colorama
【发布时间】:2018-11-23 19:46:18
【问题描述】:

所以今天我使用的是我自己编写的脚本,但我发现有问题。我使用多处理运行我的程序几个小时,然后我遇到了不同的错误。

第一个是:

第二个是:

最后一个:

Traceback (most recent call last):
    self.wrapped.write(text[start:end])
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 40, in write
    self.__convertor.write(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 141, in write
    self.write_and_convert(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 169, in write_and_convert
      File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 40, in write
    self.__convertor.write(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 141, in write
    self.write_and_convert(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 169, in write_and_convert
    self.write_plain_text(text, cursor, len(text))  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 174, in write_plain_text
    self.wrapped.write(text[start:end])
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 40, in write
    self.__convertor.write(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 141, in write
    self.write_and_convert(text)
    self.wrapped.write(text[start:end])
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 40, in write
    self.__convertor.write(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 141, in write
    self.write_and_convert(text)
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 169, in write_and_convert
      File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 169, in write_and_convert
    self.write_plain_text(text, cursor, len(text))
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 174, in write_plain_text
    self.wrapped.write(text[start:end])
  File "C:\Program Files\Python36\lib\site-packages\colorama\ansitowin32.py", line 40, in write
    self.__convertor.write(text)

问题是我试图搜索所有这三个问题,但我并没有真正找到 Python 的信息,但我想问你们错误是什么意思,我可以了解它们的作用,我也想知道如何如果尝试命中,我可以避免它们/或重试 - 除非我假设?

我所做的类似的事情如下:

logger = Logger(value)
    while True:

        try:
            url = 'https://www.google.com'

            headers = {
                'User-Agent': ('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36'
                               ' (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36')
            }

            requests.packages.urllib3.disable_warnings()
            resp = requests.get(url, headers=headers, verify=False, proxies=get_random_proxy(), timeout=12)
            resp.raise_for_status()

            if resp.status_code == 200 or 301:
                return resp.url

        except HTTPError as err:
            randomtime = random.randint(0, 1)
            logger.error('Error HTTPError! -  Retrying in {} secs'.format(randomtime))
            time.sleep(randomtime)
            continue


        except requests.exceptions.ConnectionError as err:
            randomtime = random.randint(0, 1)
            logger.error('Error ConnectionError proxy! -  Retrying in {} secs'.format(randomtime))
            time.sleep(randomtime)
            continue

        except requests.exceptions.RequestException as err:
            randomtime = random.randint(0, 1)
            logger.error('Request error proxy! - Retrying in {} secs'.format(randomtime))
            time.sleep(randomtime)
            continue

        except ssl.SSLWantWriteError:
            randomtime = random.randint(0, 1)
            logger.error('SSL Write Error! - Retrying in {} secs'.format(randomtime))
            time.sleep(randomtime)
            continue

        except ssl.SSLError as err:
            randomtime = random.randint(0, 1)
            logger.error('SSL ERROR!\n {} - Retrying in {} secs'.format(err, randomtime))
            time.sleep(randomtime)
            continue

我猜测不会出现这些错误的可能是做类似的事情

except ConnectionRefusedError as err:
    randomtime = random.randint(0, 1)
    logger.error('ERROR!\n {} - Retrying in {} secs'.format(err, randomtime))
    time.sleep(randomtime)
    continue

except request.exceptions.ProxyError as err:
    randomtime = random.randint(0, 1)
    logger.error('ERROR!\n {} - Retrying in {} secs'.format(err, randomtime))
    time.sleep(randomtime)
    continue

我不确定,但我会很感激。任何事情都将不胜感激!

【问题讨论】:

  • 如果您收到ConnectionRefusedErrorProxyError,再试一次是不太可能的。这些错误意味着某些事情实际上是错误,必须加以修复。
  • 如果我可能会问他们会在哪些方面出错?您有什么基本的建议来解决它? @约翰戈登
  • ConnectionRefusedError 表示远程主机不能或不想回答您的请求。修复它取决于为什么主机没有回答。也许您试图连接到错误的端口号,在这种情况下,修复是显而易见的——使用正确的端口号。或者主机配置为拒绝来自您的 IP 地址的请求,在这种情况下,您无能为力。
  • 哦,这意味着最后它可能是一个代理,它也可能导致它实际上发生了 connectionRefusedError?
  • 我对代理了解不多;我想它可能会以这种方式发生。

标签: python error-handling compiler-errors try-catch


【解决方案1】:

遇到了类似的问题,试图通过内置的异常来捕获它:

from builtins import ConnectionRefusedError

这似乎是最明显的解决方案,但以下方法奏效了:

requests.exceptions.ConnectionError

here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多