@AlexeyRagnar

Как прервать загрузку содержимого страницы при использовании pycurl?

Изучаю возможности pycurl ( pycurl.CurlMulti() ), Не всегда по URL можно заранее определить тип содержимого.
Требуется прервать загрузку тела(содержимого) если оно не 'text/html'.
Сейчас выбрасываю исключение из функции обработчика заголовков.
curl.setopt( pycurl.HEADERFUNCTION, headers_hdl )
...
def headers_hdl(h):
    hu=h.upper()
   if 'CONTENT-TYPE:' in hu:
        if 'TEXT/HTML' not in hu:
            raise TypeError(hu)

Есть ли более корректное решение?
  • Вопрос задан
  • 34 просмотра
Решения вопроса 1
tumbler
@tumbler Куратор тега Python
бекенд-разработчик на python
Использованное вами решение примерно для этого и предназначено.
Этот обратный вызов должен возвращать количество байт, действительно обработанных функцией. Если это количество отличается от числа байт, переданных в вашу функцию, это будет сигнализировать библиотеке об ошибке. Передача будет прервана, а текущая функция libcurl вернет CURLE_WRITE_ERROR.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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