Синтаксический анализ HTML с помощью BeautifulSoup в Python замораживает мой скрипт

#python #debugging #beautifulsoup

#python #отладка #beautifulsoup

Вопрос:

Я анализирую веб-страницу каждые 5 секунд, чтобы обнаружить изменения. Этот код выполняется почти все дни и ночи без проблем, за исключением нескольких зависаний в день, и мне приходится перезапускать его. Я мог бы обойти проблему с помощью таймера, который автоматически перезапускает мой скрипт, но я хотел бы понять проблему.

Код:

 while 1:
    [...]
    print(">>debug 1")
    soup = BeautifulSoup(response, 'html.parser')
    print(">>debug 2")
    [...]   
 

Вывод:

 [...]
>>debug 1
>>debug 2
>>debug 1
 

Здесь скрипт зависает. Последний вывод всегда «>> debug 1», затем он зависает без сбоев.

Почему эта строка случайным образом замораживает скрипт один раз каждые ~ 3000 выполнений? Как я могу продолжить расследование?

Спасибо

Комментарии:

1. Из вашего вывода. Последний вывод всегда «>> debug 1». Это означает, что soup = BeautifulSoup(response, 'html.parser') в этой строке кода что-то пошло не так. Возможно, ответ пошел не так во время вашего бесконечного цикла, что приводит к тому, что BeautifulSoup не может разобрать HTML.

2. Где вы разместили скрипт? Возможно, пропускная способность ограничена или что-то происходит с сервером в определенное время

3. @Hanz Скрипт запускается на моем компьютере. Нет проблем, когда нет пропускной способности, например, когда я отключаю Wi-Fi, он просто анализирует пустую страницу без зависания

4. Ваш компьютер работает днем и ночью 24/7?? Я в замешательстве

5. @Hanz Нет, я бы сказал, скорее 18/6