PyQt5 QWebEngineView - скрытие элементов страницы

У меня есть окно QMainWindow с виджетом QWebEngineView. При отображении определённой страницы мне нужно скрыть некоторые элементы на ней (заголовки, кнопки и т.д.).

Я использую BeautifulSoup, чтобы изменить html код страницы. Получить код мне удаётся только при помощи метода toHtml() страницы виджета, так как requests не даёт его полностью (Даже с заголовками запроса). После установки html при помощи setHtml() страница пропадает полностью, либо не имеет как такового оформления (чистые кнопки и виджеты), хотя никаких изменений я не проводил.

Как мне убрать элементы на странице, используя виджет QWebEngineView?

import sys
from bs4 import BeautifulSoup
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtWidgets import QApplication


class Browser(QtWidgets.QMainWindow):
    htmlFinished = QtCore.pyqtSignal()

    def __init__(self):
        super(Browser, self).__init__()
        self.MapView = QWebEngineView()
        self.html = ""

        self.setCentralWidget(self.MapView)
        self.MapView.loadFinished.connect(self.setHtml)

    def loadMap(self, url):
        self.MapView.setUrl(QtCore.QUrl(url))
        self.setCentralWidget(self.MapView)

    def setHtml(self):
        html = BeautifulSoup(self.getHtml(), 'html.parser')
        # здесь страницу можно изменить
        self.MapView.page().setHtml(str(html))

    def callback(self, html):
        self.html = html
        self.htmlFinished.emit()

    def getHtml(self):
        self.MapView.page().toHtml(self.callback)
        loop = QtCore.QEventLoop()
        self.htmlFinished.connect(loop.quit)
        loop.exec_()
        return self.html


if __name__ == '__main__':
    app = QApplication(sys.argv)
    br = Browser()
    br.loadMap('https://google.com')
    sys.exit(app.exec_())

Ответы (0 шт):