-Этот код был протестирован в: QT_VERSION_STR = 5.12.1 , PYQT_VERSION_STR = 5.12
ПРИМЕЧАНИЕ: QtWebKit устарел в восходящем потоке в Qt 5.5 и удален в 5.6.
Вместо этого он заменяется на «QtWebEngineWidgets». Таким образом, вы должны внести изменения в код.
Для получения дополнительной информации: http://doc.qt.io/qt-5/qtwebenginewidgets-qtwebkitportingguide.html
from PyQt5.QtGui import QPainter, QImage
from PyQt5 import QtWebKitWidgets
from functools import partial
class Screenshot(QtWebKitWidgets.QWebView):
def __init__(self):
QtWebKitWidgets.QWebView.__init__(self)
def capture(self, url, output_file):
self.load(QUrl(url))
self.loadFinished.connect(partial(self.onDone, output_file))
def onDone(self,output_file):
# set to webpage size
frame = self.page().mainFrame()
self.page().setViewportSize(frame.contentsSize())
# render image
image = QImage(self.page().viewportSize(), QImage.Format_ARGB32)
painter = QPainter(image)
frame.render(painter)
painter.end()
image.save(output_file)
s = Screenshot()
s.capture('https://pypi.org/project/PyQt5/', 'C:/Users/user/Desktop/web_page.png')
результат:
![enter image description here](https://i.stack.imgur.com/AFskI.png)