Есть ли способ сохранить предыдущий ответ и сравнить с текущим?

#python #python-3.x

#python #python-3.x

Вопрос:

Обычно я гуглю свои вопросы, но на этот раз не смог их найти. Я тоже не особо увлекаюсь программированием, просто пытаюсь.

Итак, в основном я пытаюсь создать скрипт, который постоянно ПОЛУЧАЕТ запрос на html-страницу, получает содержимое, сохраняет его в течение некоторого времени, а затем получает другой запрос, сравнивает содержимое ответа с предыдущим и выполняет разные действия в зависимости от условия, если они равны — ничего не делайте, если они разные — выполняйтеновое действие. Вот код, который я написал. Я понимаю, ПОЧЕМУ он не работает, он выполняет оба запроса одновременно. Я просто не могу понять, как его правильно сохранить.

 import requests
import time

url = 'http://127.0.0.1:5000/'
result = requests.request("GET", url, verify=True)
new_result = requests.request("GET", url, verify=True)

print(result.content)
print(new_result.content)

while result.content == new_result.content:
        print('condition 1')
        time.sleep(15)

while result.content != new_result.content:
        print('condition 2')
        time.sleep(15)
  

Ответ №1:

Это должно помочь вам начать. Я заменил ваши 2 цикла только одним (на данный момент бесконечным, но вы всегда можете изменить это в соответствии с вашими реальными требованиями). Ключ в том, чтобы выполнить sleep перед получением new_result , а затем проверить, равен ли он старому. И затем, наконец, обновите «старый», чтобы он был результатом, который вы только что получили.

 import requests
import time

url = 'http://127.0.0.1:5000/'
result = requests.request("GET", url, verify=True)

while True:
    time.sleep(15)
    new_result = requests.request("GET", url, verify=True)
    print(result.content)
    print(new_result.content)
    if result.content == new_result.content:
        print('condition 1')
    else:
        print('condition 2')
    result = new_result