Отображение страницы в python3
Как я могу сделать отображение веб страницы в интерфейсе python ?
Доступ к исходному коду страницы нету. Нужно что-бы просто показывало страницу, без передачи данных и т.д.
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
как вариант, с использованием PyQt5.
Если вы еще не устанонови PyQt5, то я очень рекомендую.
PyQt — реализация фреймворка Qt для языка Python.
pip install PyQt5
pip install pyqt5-tools
Наберите в строке нужный вам адрес и нажмите Enter.
import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import (QApplication, QLineEdit, QMainWindow,
QPushButton, QToolBar)
from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineView
class Example(QMainWindow):
def __init__(self):
super(Example, self).__init__()
self.toolBar = QToolBar(self)
self.addToolBar(self.toolBar)
self.backBtn = QPushButton(self)
self.backBtn.setEnabled(False)
self.backBtn.setIcon(QIcon('images/left.png'))
self.backBtn.clicked.connect(self.back)
self.toolBar.addWidget(self.backBtn)
self.forBtn = QPushButton(self)
self.forBtn.setEnabled(False)
self.forBtn.setIcon(QIcon('images/right.png'))
self.forBtn.clicked.connect(self.forward)
self.toolBar.addWidget(self.forBtn)
self.address = QLineEdit(self)
self.address.returnPressed.connect(self.load)
self.toolBar.addWidget(self.address)
self.webEngineView = QWebEngineView(self)
self.setCentralWidget(self.webEngineView)
self.webEngineView.page().urlChanged.connect(self.onLoadFinished)
def onLoadFinished(self):
if self.webEngineView.history().canGoBack():
self.backBtn.setEnabled(True)
else:
self.backBtn.setEnabled(False)
if self.webEngineView.history().canGoForward():
self.forBtn.setEnabled(True)
else:
self.forBtn.setEnabled(False)
def load(self):
url = QUrl.fromUserInput(self.address.text())
if url.isValid():
self.webEngineView.load(url)
def back(self):
self.webEngineView.page().triggerAction(QWebEnginePage.Back)
def forward(self):
self.webEngineView.page().triggerAction(QWebEnginePage.Forward)
def urlChanged(self, url):
self.address.setText(url.toString())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.resize(640, 480)
ex.setWindowTitle('QWebEnginePage')
ex.show()
sys.exit(app.exec_())
