Reading about Python? Actually practice it. Try PyChallenge free

Python Tutorial

PyQt5 webkit browser

QWebview inside a browser PyQt5 Webkit (QWebview) inside a browser

PyQt5 comes with a webkit webbrowser. Webkit is an open source web browser rendering engine that is used by Apple Safari and others. It was used in the older versions of Google Chrome, they have switched to the Blink rendering engine.

Related course:
Practice Python with interactive exercises

QWebView The widget is called QWebView and webpages (HTML content) can be shown through this widget, local or live from the internet.

Download Example Code

Methods The QWebView class comes with a lot of methods including:

  • back (self)
  • forward (self)
  • load (self, QUrl url)
  • reload (self)
More documentation on this class can be found on ics.uci.edu

#!/usr/bin/python

import PyQt5 from PyQt5.QtCore import QUrl from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtWebKitWidgets import QWebView , QWebPage from PyQt5.QtWebKit import QWebSettings from PyQt5.QtNetwork import * import sys from optparse import OptionParser

class MyBrowser(QWebPage): ''' Settings for the browser.''' def userAgentForUrl(self, url): ''' Returns a User Agent that will be seen by the website. ''' return "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"

class Browser(QWebView): def __init__(self): # QWebView self.view = QWebView.__init__(self) #self.view.setPage(MyBrowser()) self.setWindowTitle('Loading...') self.titleChanged.connect(self.adjustTitle) #super(Browser).connect(self.ui.webView,QtCore.SIGNAL("titleChanged (const QString&)"), self.adjustTitle)

def load(self,url): self.setUrl(QUrl(url)) def adjustTitle(self): self.setWindowTitle(self.title()) def disableJS(self): settings = QWebSettings.globalSettings() settings.setAttribute(QWebSettings.JavascriptEnabled, False)

app = QApplication(sys.argv) view = Browser() view.showMaximized() view.load("https://pythonspot.com") app.exec_()

BackNext