@googlebot2

Нужно отследить изменение числа, если оно изменилось то делать действие?

Здравствуйте!
У меня есть код, который парсит значение последнего изменения с сайта и выводит число.
from bs4 import BeautifulSoup as bs
from lxml import etree
from time import strptime
import requests
import schedule
def bs_get(html_text):
    soup = bs(html_text, "lxml")
    text = soup.find_all(attrs={"align": "right"})
    dataaa = text[0].text.strip()
    start = dataaa.find('')
    end = dataaa.find("-")
    print(dataaa[start: end])
def main():
    urler = "http://rasp.vksit.ru/?C=M;O=D"
    html_text = requests.get(urler).text
    schedule.every(5).seconds.do(bs_get, html_text)

    while True:
        schedule.run_pending()

if __name__ == "__main__":
    main()

Как сделать так, чтобы при изменении этого числа(допустим было 18, стало 19) делалось действие?
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
@holodoz
bs_get вызывается каждый раз с одним и тем же значением параметра html_text, надо чтение данных из веба внести в функцию, и какую-нибудь переменную ввести для отслеживания изменения
def bs_get(html_text):
    urler = "http://rasp.vksit.ru/?C=M;O=D"
    html_text = requests.get(urler).text
    soup = bs(html_text, "lxml")
    text = soup.find_all(attrs={"align": "right"})
    dataaa = text[0].text.strip()
    end = dataaa.find("-")
    print(dataaa[: end])
    if !that_number:
        that_number == int(dataaa[: end])
    else:
        if that_number != int(dataaa[: end]):
            pass #тут какое-то действие делать

def main():
    bs_get.that_number = 0
    schedule.every(5).seconds.do(bs_get, html_text)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы