HTTP-запрос с использованием Python в Windows иногда дает WinError 100601

В Linux, здесь рефакторинг кода mizipzor, который делает это немного проще, если вы должны использовать этот код в нескольких местах.

import sys
import select
import tty
import termios

class NonBlockingConsole(object):

    def __enter__(self):
        self.old_settings = termios.tcgetattr(sys.stdin)
        tty.setcbreak(sys.stdin.fileno())
        return self

    def __exit__(self, type, value, traceback):
        termios.tcsetattr(sys.stdin, termios.TCSADRAIN, self.old_settings)


    def get_data(self):
        if select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], []):
            return sys.stdin.read(1)
        return False

Вот как это использовать: Этот код будет напечатайте счетчик, который продолжает расти, пока вы не нажмете ESC.

with NonBlockingConsole() as nbc:
    i = 0
    while 1:
        print i
        i += 1
        if nbc.get_data() == '\x1b':  # x1b is ESC
            break
0
задан Paul Rooney 16 January 2019 в 01:08
поделиться

1 ответ

Можете ли вы конкретно указать «иногда», как часто вы пытаетесь вызывать URL-адреса? Удалось ли вам иногда получать результаты?

Я предполагаю, что серверы работают. Всякий раз, когда вы делаете request.get, создается tcp-соединение, а когда вы неоднократно вызываете request.get, оно создает несколько tcp-соединений, что снижает производительность и может привести к ошибкам HTTPSConnectionPool. Вы можете попробовать сеанс Python-запроса , он сохранит соединение TCP, созданное для повторного использования.

0
ответ дан aja 16 January 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: