
Проксимов
29.05.2019
13:57:17
Добрый день. Прошу помочь разобраться. Делаю для себя бота телеграмм, бот парсит флибусту, выдаёт результат, при выборе формата книги - начинает загрузку и отправляет в телеграм обратно в тот же чат. Использую метод getUpdates и обрабатываю каждое событие из полученного массива последовательно. Все работает довольно сносно, однако момент загрузки и отправки книги - это около 30-40 секунд, соответственно остальные события ждут, пока это кончится. Вот пример конечного кода, https://dpaste.de/jXME, получаю весь массив, и дальше обрабатываю по одному. Пробовал threading добавить в message_processing, но вообще ничего не изменилось. Собственно пробовал t = threading.Thread(target=one_message_processing(update))
t.start()
Цель - чтобы книга качалась в фоне и бот не фризился для остальных запросов
Добавь асинка
Бери aiogram

Кирилл
29.05.2019
14:01:02

Hairygeek
29.05.2019
14:01:47

Google

Agaliar3pt
29.05.2019
14:03:14

Кирилл
29.05.2019
14:03:58
Бери aiogram
Спасибо, я посмотрю библиотеку, но у меня цель была скорее сделать это самому, чтобы 1. Разобраться, 2. Пока что не использовать веб-хуки, нет готового окружения для приема запросов с ssl. А pyTelegramApi на getUpdate, через bot.infinity_polling или polling постоянно выбрасывал ошибки, что уже запущен другой инстанс

Hairygeek
29.05.2019
14:04:06
telepot?
я использовал python-telegram-bot

Agaliar3pt
29.05.2019
14:04:17

Кирилл
29.05.2019
14:04:20
telepot?
А вот он вообще не заработал, не удалос даже соединиться по документации

Agaliar3pt
29.05.2019
14:04:37

Futorio
29.05.2019
14:05:23
что aiogram, что нет
ой, глупость сказал, сорри
перепутал с проксями

Кирилл
29.05.2019
14:06:52

Проксимов
29.05.2019
14:07:38

Кирилл
29.05.2019
14:08:29

Google

Futorio
29.05.2019
14:08:46
ну в местах, где телега не забанена, можно поллингом потестить

Кирилл
29.05.2019
14:11:13
Ещё раз всем спасибо, буду разбираться со следующими этапами, и посмотрю библиотеки

Проксимов
29.05.2019
14:16:17

polunin.ai???
29.05.2019
14:16:59

;)
29.05.2019
14:41:49
Дотчик штоле?

Nikita
29.05.2019
14:48:15
такой вопрос
есть список idшников во фронте
нормально его post-запросом на сервер пересылать?

?? Eugene
29.05.2019
14:50:48

Nikita
29.05.2019
14:51:06
я так не делал раньше прост

?? Eugene
29.05.2019
14:51:34
Законом не запрещено)

Nikita
29.05.2019
14:52:28
ну и отлично

Евгений
29.05.2019
14:53:40

Nikita
29.05.2019
14:54:13

Евгений
29.05.2019
14:54:40
Пытаюсь в рестфул
А что ты хочешь таким запросом сделать? Создать объект, обновить или заменить?

Nikita
29.05.2019
14:55:03
Простотпередать кучи айдигек, которые в свою очередь сохркнятся в бд

Евгений
29.05.2019
14:56:21
post - создание. все правильно делаешь.

ᅠ
29.05.2019
15:45:58
парни как быть
я ищу элемент, если его нет ошибка, а как сделать так что если его нет просто не буду искать
что бы не выбивало и желательно без try except

Hairygeek
29.05.2019
15:46:36

ᅠ
29.05.2019
15:46:42

Google

Hairygeek
29.05.2019
15:47:07
селен
find_elements_by_xpath

ᅠ
29.05.2019
15:47:10
да

Hairygeek
29.05.2019
15:47:42
да
Наверное, ты ищешь не elements, а element

ᅠ
29.05.2019
15:48:37
Наверное, ты ищешь не elements, а element
не я не спрашивю по ошибке
просто на сайте таблица так скажем и не вкаждой ячейке ожидаемый объект
вот как сделать что бы если объекта нет мы просто пропустим а не ошибку бьти

Hairygeek
29.05.2019
15:49:12

?? Eugene
29.05.2019
15:49:18
А что за ошибка?

ᅠ
29.05.2019
15:49:31
А что за ошибка?
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":".//span[@class="line-event__score-value"]"}

?? Eugene
29.05.2019
15:50:48
В try/except оборачивай

ᅠ
29.05.2019
15:52:07
пример конструкции
while:
for:
for:
как выйти из всех for но не из while

Zhanarys
29.05.2019
16:46:42
break
break

ᅠ
29.05.2019
16:47:17
да но где ставить
по табуляции

Tishka17
29.05.2019
16:48:46
внутри форов =))

Zhanarys
29.05.2019
16:48:52
Странный вопрос

Tishka17
29.05.2019
16:50:43
но смотря какой код, возможно есть более красивое решение.
Например, вынести оба фора в функцию и сделать в ней return
Или если это действительно особенная ситуация - можно кинуть исключение
или иногда просто периписать говнокод

Google

Admin
ERROR: S client not available

koder
29.05.2019
16:51:37

ᅠ
29.05.2019
16:52:15

Worlak
29.05.2019
16:53:36

Hairygeek
29.05.2019
16:55:18
itertools.product()?

Artöm
29.05.2019
16:56:52

ᅠ
29.05.2019
16:59:58
че то не доперло
последний for закрываю а первый не могу

Vladislav
29.05.2019
17:00:53
Народ, может кто работал с mset в toolbag ?

Artöm
29.05.2019
17:03:33
while True:
stopped = False
for:
for:
# ...
if stopped:
break
if stopped:
break

Amaro
29.05.2019
17:03:37
Нельзя в питоне одним махом брякнуться из внешнего цикла. Можно, правда, такую конструкцию собрать:
for i in range(5):
print('for', i)
for j in range(3):
if i==3:
break
print('for for', j)
else:
continue
break

Tishka17
29.05.2019
17:04:43

Amaro
29.05.2019
17:04:58
Тут оба цикла вываливаются по условию во внутреннем без лишней проверки во внешнем.

ᅠ
29.05.2019
17:05:44
крч вот он
на 63 break отрабатывает а другой хз куда воткнуть уже

Hairygeek
29.05.2019
17:06:20
itertools.product()

Проксимов
29.05.2019
17:07:15
Попробуй уменьшить вложенность

Amaro
29.05.2019
17:08:22
Я ж показал работающую конструкцию. Если ее вставить в вайл, будет ровно то, что надо.

Tishka17
29.05.2019
17:12:22
Ять

Google

Tishka17
29.05.2019
17:12:31
Я же говорил про функции
Так вот их должно быть не две
А больше
Это же нечитаемая хрень

ᅠ
29.05.2019
17:13:05
так если я раскидаю на функции я потом с этими ошибками устану

Tishka17
29.05.2019
17:13:18
Наоборот
Если не раскидаешь
Одно неосторожное движение и сломалась не одна функция, а вообще всё