Сделай сам свой браузер с помощью PyQT и WebKit


Как самому написать простой, но полноценный браузер в стиле DIY? Для этого нужно написать всего восемь строчек кода, если использовать расширения языка Python для фреймворка Qt, куда входят и библиотеки html-движка WebKit. И Python, и Qt, и WebKit являются свободным программным обеспечением.


Настоящий любитель свободного софта должен не только уметь использовать свободные программы, но и сам их писать. Мало ли чего в жизни случается. Вот и напишем свой простой веб-браузер. Тем более это не так уж и трудно, если использовать свободное программное обеспечение.

Мы для этого будем использовать следующие вещи:

Язык Python входит по умолчанию в операционную систему Ubuntu, и его устанавливать не потребуется. Нужно лишь установить фрейморк PyQt, который содержит в себе рендер HTML-страничек Webkit.

sudo apt-get install python-qt4

Webkit непосредственно или в виде форков используется в популярных веб-обозревателях Safari, Opera, Chrome, Яндекс.Браузер, Epiphany, Arora, Dolphin и других. Так что наш самодельный браузер в плане качественного отображения веб-страниц не будет уступать своим именитым собратьям.

Теперь осталось открыть терминал и войти в интерактивный режим языка Python, набрав команду python

$ python

Python 2.7.7 (default, Jun  4 2014, 05:21:28) 
[GCC 4.8.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

И дальше вводим последовательно следующие строки, в конце каждой нажимая клавишу «Ввод»:

import sys
from PyQt4 import QtGui,QtCore,QtWebKit,QtScript
app=QtGui.QApplication(sys.argv)
web=QtWebKit.QWebView()
web.setGeometry(100,50,800,480)
web.setWindowTitle('MyBrowser')
web.load(QtCore.QUrl('http://www.belursus.info'))
web.show()

После чего появится окошко нашего самодельного браузера и загрузится страница, адрес которой мы указали в предпоследней строчке.

Рис. Рис. DIY-браузер на PyQt
Рис. Рис. DIY-браузер на PyQt

В общем предпоследняя строка web.load(QtCore.QUrl(’адрес страницы’)) — это эдакий аналог адресной строки, которую можно вызывать в консоль клавишами вызова истории команд «вверх» и «вниз», и вводя новый адрес. Не забывая затем также вызывать этими клавишами строку web.show().

P.S. Со временем напишем и такой же браузер и для боле современных версии Python 3 и Qt5.

Ⓜ ⬇ 2014-06-29