Python - ConnectionRefusedError, urllib3.exceptions.NewConnectionError и Colorama - PullRequest
0 голосов
/ 23 ноября 2018

Итак, сегодня я использовал сценарий, который написал сам, где заметил, что что-то не так.Я запустил мою программу с использованием многопроцессорной обработки в течение нескольких часов, а затем получил несколько ошибок:

Первая:

Problem1

Второй:

Problem2

Последний:

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

Я не уверен, но я был бы признателен за все.Все будет оценено!

1 Ответ

0 голосов
/ 28 января 2019

Возникла похожая проблема, пытался ее перехватить, за исключением встроенных:

from builtins import ConnectionRefusedError

, что казалось наиболее очевидным решением, однако сработало следующее:

requests.exceptions.ConnectionError

см здесь

...