0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 68
1

PyTelegramBotAPI выходит ошибка

12.05.2020, 12:47. Показов 3798. Ответов 3

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток.
Есть бот, есть проплаченная прокся, есть библиотека PyTelegramBotAPI.
При запуске, бот работает и всё ок. (Т.е. я пишу, он отвечает и т.д., до определенного момента)
Но иногда, после отправки боту сообщения может вылезти вот это дело:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
2020-05-12 11:42:52,337 (util.py:66 WorkerThread2) ERROR - TeleBot: "ProxyError occurred, args=(MaxRetryError("HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot/sendMessage?chat_id=502663264&text=%D0%9C%D0%BD%D0%B5+%D0%BD%D1%83%D0%B6%D0%BD%D1%8B+%D1%82%D0%B2%D0%BE%D1%8F+%D0%BE%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0%2C+%D1%81%D0%B0%D0%BF%D0%BE%D0%B3%D0%B8%2C+%D0%BC%D0%BE%D1%82%D0%BE%D1%86%D0%B8%D0%BA%D0%BB%2C+%D0%B0+%D1%82%D0%B0%D0%BA%D0%B6%D0%B5+%D0%BB%D0%BE%D0%B3%D0%B8%D0%BD+%D0%B8+%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C+%D1%83%D1%87%D1%91%D1%82%D0%BA%D0%B8&reply_markup=%7B%22keyboard%22%3A+%5B%5B%7B%22text%22%3A+%22%2Flogin%22%7D%5D%5D%2C+%22one_time_keyboard%22%3A+true%2C+%22resize_keyboard%22%3A+true%7D (Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response')))"),)
Traceback (most recent call last):
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 385, in _make_request
    httplib_response = conn.getresponse(buffering=True)
TypeError: getresponse() got an unexpected keyword argument 'buffering'
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 578, in urlopen
    chunked=chunked)
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 387, in _make_request
    httplib_response = conn.getresponse()
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 1321, in getresponse
    response.begin()
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 296, in begin
    version, status, reason = self._read_status()
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 265, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\adapters.py", line 403, in send
    timeout=timeout
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 623, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\packages\urllib3\util\retry.py", line 281, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
requests.packages.urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot/sendMessage?chat_id=502663264&text=%D0%9C%D0%BD%D0%B5+%D0%BD%D1%83%D0%B6%D0%BD%D1%8B+%D1%82%D0%B2%D0%BE%D1%8F+%D0%BE%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0%2C+%D1%81%D0%B0%D0%BF%D0%BE%D0%B3%D0%B8%2C+%D0%BC%D0%BE%D1%82%D0%BE%D1%86%D0%B8%D0%BA%D0%BB%2C+%D0%B0+%D1%82%D0%B0%D0%BA%D0%B6%D0%B5+%D0%BB%D0%BE%D0%B3%D0%B8%D0%BD+%D0%B8+%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C+%D1%83%D1%87%D1%91%D1%82%D0%BA%D0%B8&reply_markup=%7B%22keyboard%22%3A+%5B%5B%7B%22text%22%3A+%22%2Flogin%22%7D%5D%5D%2C+%22one_time_keyboard%22%3A+true%2C+%22resize_keyboard%22%3A+true%7D (Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response')))
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\util.py", line 60, in run
    task(*args, **kwargs)
  File "C:/Users/z-Marasinskijjna/PycharmProjects/PythonProject/test2.py", line 93, in startmessage
    bot.send_message(message.from_user.id, 'Мне нужны твоя одежда, сапоги, мотоцикл', reply_markup=keyboardopportunities)
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\__init__.py", line 601, in send_message
    reply_markup, parse_mode, disable_notification, timeout))
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\apihelper.py", line 154, in send_message
    return _make_request(token, method_url, params=payload, method='post')
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\apihelper.py", line 58, in _make_request
    timeout=(connect_timeout, read_timeout), proxies=proxy)
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 585, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\z-Marasinskijjna\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\adapters.py", line 465, in send
    raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot/sendMessage?chat_id=502663264&text=%D0%9C%D0%BD%D0%B5+%D0%BD%D1%83%D0%B6%D0%BD%D1%8B+%D1%82%D0%B2%D0%BE%D1%8F+%D0%BE%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0%2C+%D1%81%D0%B0%D0%BF%D0%BE%D0%B3%D0%B8%2C+%D0%BC%D0%BE%D1%82%D0%BE%D1%86%D0%B8%D0%BA%D0%BB%2C+%D0%B0+%D1%82%D0%B0%D0%BA%D0%B6%D0%B5+%D0%BB%D0%BE%D0%B3%D0%B8%D0%BD+%D0%B8+%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C+%D1%83%D1%87%D1%91%D1%82%D0%BA%D0%B8&reply_markup=%7B%22keyboard%22%3A+%5B%5B%7B%22text%22%3A+%22%2Flogin%22%7D%5D%5D%2C+%22one_time_keyboard%22%3A+true%2C+%22resize_keyboard%22%3A+true%7D (Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response')))
"
После этого, бот перестаёт отвечать.
Гуглил интернеты, ничего толкового не нашёл.
Единственное решение было - загнать polling в бесконечный цикл, но это не помогло.
Вот методы зацикливания, которые я испробовал:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
while True:
    try:
        bot.polling(none_stop=True, timeout=130)
        break
    except:
        #logging.error(err)
        pass
        bot.send_message(202186659, 'Я отвалился')
        bot.stop_polling()
        time.sleep(1)
        print('Интернет')
 
 
 
def telpol():
    while True:
        try:
            bot.infinity_polling(none_stop=True, timeout=130)
        except TypeError:
            bot.stop_polling()
            break
        except requests.exceptions.ProxyError:
            bot.stop_polling()
            break
        except requests.packages.urllib3.exceptions.MaxRetryError:
            bot.stop_polling()
            break
        except:
            print('Исключение')
            bot.stop_polling()
            break
 
 
 
 
while True:
    try:
        telpol()
    except:
        time.sleep(10)
        bot.stop_polling()
        print('остановил')
        time.sleep(10)
 
 
while True:
    try:
        bot.infinity_polling(none_stop=True, timeout=130)
    except:
        errortime = datetime.datetime.now()
        time.sleep(5)
        log.exception('Остановка бота в ' + str(errortime))
        print('Ошибка')
        try:
            bot.stop_polling()
            print('Остановил')
        except:
            print('Не получилось остановить')
Прошу помочь, т.к. уже перепробовал всё, на что интернет горазд)
Заранее спасибо)

Добавлено через 25 минут
Забыл отписать что используется встроенный в библиотеку apihelper, для обхода блокировки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2020, 12:47
Ответы с готовыми решениями:

Ошибка бота на pyTelegramBotApi
Доброго времени суток! Начал делать, своего первого бота на pyTelegramBotApi и в командной строке...

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

Выходит ошибка Program8.pas(8) : Ошибка времени выполнения: Input string was not in a correct format
Помогите, пожалуйста , понять в чём ошибка Цикл с предусловием – while: Определить, является ли...

Открыл данную программу на другом компьютере, она не запустилась. Выходит такая ошибка " Ошибка инициализации
Я по этой ссылке http://basicsprog.ucoz.ru/publ/6-1-0-17 разработал МП3-Плеер, сделал все как надо,...

Не работает pyTelegramBotAPI
Не работает pyTelegramBotAPI. Код import telebot from telebot import types import random...

3
4284 / 964 / 138
Регистрация: 29.01.2013
Сообщений: 5,668
12.05.2020, 13:33 2
Цитата Сообщение от СекретФирмы Посмотреть сообщение
Python
1
2020-05-12 11:42:52,337 (util.py:66 WorkerThread2) ERROR - TeleBot: "ProxyError occurred, args=(MaxRetryError("HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot/sendMessage?chat_id=502663264&text=...&reply_markup=%7B%22keyboard%22%3A+%5B%5B%7B%22text%22%3A+%22%2Flogin%22%7D%5D%5D%2C+%22one_time_keyboard%22%3A+true%2C+%22resize_keyboard%22%3A+true%7D (Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response')))"),)
обратите внимание на эту строку. Конкретно на часть Max retries exceeded with. возможно вы задосили прокси и вас заблокировало.
0
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 68
12.05.2020, 14:12  [ТС] 3
Такая же ошибка выходит по ночам (ровно в полночь +3-12 секунд), но в этот момент никто не пишет и это не критично.
Но сам процесс бота не прерывается и утром я пишу и мне приходит ответ, и всё в общем-то ОК.
Так же, если бы меня прокся банила, то я бы не смог повторно запустить бота- он бы постоянно отваливался в эту ошибку.
Но эта ошибка вылазит, я запускаю его заново и всё нормально. Ну до поры до времени)
Сейчас предположил, может это выходит из-за какого-то метода, и во всех методах проставил try/except.
0
4284 / 964 / 138
Регистрация: 29.01.2013
Сообщений: 5,668
12.05.2020, 14:27 4
СекретФирмы, я бы посмотрел, с помощью какого-нибудь монитора трафика, сколько подключений он открывает. Когда я прошлый раз видел такую ошибку, тот сервис генерировал 23 подключения в секунду.

Добавлено через 32 секунды
но стоит учитывать, что я не специалист по проксям и телеботам.
0
12.05.2020, 14:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2020, 14:27
Помогаю со студенческими работами здесь

Send_message pytelegrambotapi
Здравствуйте. Кто знает, каким образом можно в Телеграм боте отправить в одном сообщении и текст и...

Выходит ошибка
#черепашка import turtle t= turtle.pen() for x in range(100): t. forward (x) t....

Ошибка выходит
List<int> x = new list<int>();

Выходит ошибка!
Как это решить подскажите?! подключился к бд в аксесс, хочу в датагрив отобразить данные из этой...

Бот Telegram (pyTelegramBotApi)
Помогите пожалуйста. Только начинаю этим заниматься, пока мало что получается. Задание вот в чем:...

pyTelegramBotAPI Перелистывание страниц
Есть 10 картинок page1, page2, .., page10 необходимо реализовать инлайн кнопки "назад" и "вперед"...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru