KL
Feb. 21, 2017, 11:32 p.m.

QNetworkAccessManager Как отследить страницу закрытую от парсинга и страницу с кодом 404

Добрый вечер, при парсинге страниц попадаешь на сайты с защитными Api, как отличить сайт закрытый от парсинга от страниц которых не существует?

2

Do you like it? Share on social networks!

3
Evgenii Legotckoi
  • Feb. 22, 2017, 10:24 p.m.

Если говорить об ошибках, которые возвращает сервер, то их можно проверить через получаемые ошибки в методе QNetworkReply::error() , данный метод возвращает код ошибки. Если искать ошибку 404, то эта ошибка будет аналогична коду ошибки 203 в QNetworkReply , то есть QNetworkReply::ContentNotFoundError .

А дальше уже искать различные другие признаки того, что страница всё же скачивается. Возможно, попытаться прочитать содержимое ответа. Если есть какое-нибудь содержимое, то можно считать, что страница закрыта от парсинга, хотя я не уверен в этом решении. Это только предположение, нужно проверять как будет вести себя сам QNetworkReply и QNetworkAccessManager .

    KL
    • Feb. 26, 2017, 4:47 a.m.

    Как прекратить загрузку файла после его закачки на 5-7 %. Это бы решило вопрос пинга страницы.

      Evgenii Legotckoi
      • Feb. 26, 2017, 12:41 p.m.

      У класса QNetworkReply есть метод abort() . Когда выполняете метод QNetworkAccessManager::get(const QNetworkRequest &request) он возвращает объект класса QNetworkReply. Сохраняете указатель на этот объект и если надо через его метод abort() прекращаете работу.

        Comments

        Only authorized users can post comments.
        Please, Log in or Sign up
        • Last comments
        • AK
          April 1, 2025, 11:41 a.m.
          Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
        • Evgenii Legotckoi
          March 9, 2025, 9:02 p.m.
          К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
        • VP
          March 9, 2025, 4:14 p.m.
          Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
        • ИМ
          Nov. 22, 2024, 9:51 p.m.
          Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
        • Evgenii Legotckoi
          Oct. 31, 2024, 11:37 p.m.
          Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup