Использование QtWebEngine для сохранения изображений на диск

Я хотел бы иметь возможность загружать URL-адрес веб-страницы и сохранять изображения на странице на диск.

Для не изображений я могу просто использовать QWebEngineView.load для нужного URL-адреса, и он запускает QWebEngineProfile.downloadRequested, где я могу указать путь к файлу и принять загрузку. Однако изображения просто отображаются в самом браузере и обходят файл downloadRequested.

Это не должно быть элегантно, но страница использует аутентификацию, и .load, кажется, передает эту информацию.


person Saebin    schedule 23.05.2017    source источник


Ответы (2)


Вы можете установить QWebEngineUrlRequestInterceptor в профиль страницы перед загрузкой чего-либо и использовать QWebEngineUrlRequestInfo::resourceType(), чтобы узнать, является ли запрашиваемый ресурс изображением или нет. Если это изображение, вы также можете получить его URL-адрес из QWebEngineUrlRequestInfo и загрузить его.

person Xian Nox    schedule 10.06.2017

Что ж, на данный момент я нашел обходной путь... в Qt 5.8 QWebEnginePage имеет функцию сохранения, которая запускает загрузку текущей загруженной веб-страницы... поэтому вам просто нужно перейти к URL-адресу изображения с помощью QWebEngineView.load, а затем использовать QWebEnginePage.save

person Saebin    schedule 25.05.2017