DOM Aware Browser Python GUI Widget - PullRequest
       5

DOM Aware Browser Python GUI Widget

4 голосов
/ 10 февраля 2009

Я ищу виджет для браузера Python (по аналогии с классом QTextBrowser или модуля wxpython * для PyQT4 ), в котором есть события для взаимодействия с DOM. Например, если я выделю узел h1, у класса виджетов должен быть метод, который уведомляет меня о том, что что-то было подсвечено и какие свойства у этого домена были (<h1>, содержимое тега, родственные и родительские теги и т. Д.). В идеале модуль / класс виджета должен был бы предоставить доступ к самому объекту дерева DOM, чтобы я мог пройти по нему, изменить его и повторно отобразить новое дерево.

Существует ли что-то подобное? Я пытался искать, но, к сожалению, я не смог его найти. Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 18 февраля 2009

Это может быть не идеально для ваших целей, но вы можете взглянуть на привязки Python к KHTML, которые являются частью PyKDE. Одним из мест, где можно начать поиск, является класс KHTMLPart:

http://api.kde.org/pykde-4.2-api/khtml/KHTMLPart.html

Поскольку API для этого класса основан на парадигме сигналов и слотов, используемой в Qt, вам потребуется подключать различные сигналы к слотам в вашем собственном коде, чтобы узнать, когда части документа были изменены. Существует также DOM API, поэтому также должна быть возможность доступа к узлам DOM для выбранных частей документа.

Более подробную информацию можно найти здесь:

http://api.kde.org/pykde-4.2-api/khtml/index.html

1 голос
/ 10 февраля 2009

Если вы не против быть ограниченным Windows, вы можете использовать браузер IE. Из wxPython он находится в wx.lib.iewin.IEHtmlWindow (в демонстрационной версии wxPython есть демонстрационная версия). Это дает вам полный доступ к DOM и возможность потопить события, например,

ie.document.body.innerHTML = u"<p>Hello, world</p>"
1 голос
/ 10 февраля 2009

Мне бы тоже понравилась такая вещь. Я подозреваю, что один с привязками Python не существует, но был бы очень рад ошибиться.

Один вариант, который я недавно просматривал (но никогда не пробовал), - это браузер Webkit . Теперь это имеет некоторые привязки для Python и построено с использованием различных наборов инструментов (я использую GTK). Тем не менее, существует доступный API для всей машины Javascript для C ++, но нет привязок Python, и я не вижу причин, по которым они не могут быть связаны с Python. Я знаю, что это довольно трудоемкая задача, но это был бы универсально полезный проект, поэтому, возможно, оно того стоит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...