@jonnylast

Python, как сделать, чтобы цикл остановился, а потом возобновился?

пишу код, который берет аккаунт из базы данных проверяет его на валидность. Все работает, но проблема в том, что после 5 заходов, сайт блокируется на 4 минуты и получается, что после того как цикл пройдёт ровно 4 раза, мне нужно будет отправить его в спячку. Как это сделать.
import requests
import time

file = open('logins.txt').read().split('\n')
for account in file:
    username = account.split(' / ')[0]
    password = account.split(' / ')[1]
    log_acc = requests.post(" https://cp.vimeworld.com/api/login", data = {'username': username, 'password': password}).text
        if not 'invalid_credentials' in log_acc:
            print('Аккаунт валидный', {account})
        else:
            print('Аккаунт невалидный', {account})
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 2
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Необходимо рефакторить код, разделить его по функциям. Подготовка логина/пароля - одна функция, запрос - другая функция, обработка результата - третья.
Кроме того, надо сделать функцию, которая будет в цикле делать запросы, вызывая нужные функции в нужном порядке, считать количество запросов и, когда насчитает нужное количество циклов, сбрасывать счетчик и вызывать что-нибудь вроде
pause_int_seconds = 5
time.sleep(pause_int_seconds)
Ответ написан
Комментировать
eri
@eri
Чтоб упростить код можно воткнуть сложную штуку - генератор.

def four_in_five(iterable):
      it = iter(iterable)
      while True:
          try:
               yield next(it)
               yield next(it)
               yield next(it)
               yield next(it)
          except StopIteration:
               break
          time.sleep(60*5)


Используется так

for account in four_in_five(file):

А можно просто счётчик в цикл вставить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект
30 апр. 2024, в 23:39
3000 руб./за проект