Задача такая: нужно нарисовать безгуёвое приложение, умеющее выполнять веб-страницы вместе со всеми скприптами и вмешиваться в их работу (а-ля пользовательские скрипты в браузерах). Работать всё должно максимально самостоятельно, желательно даже без иксов (хотя, сомнительно, что выйдет обойтись без них).
Подойдут ли для этого Webkit или Chromium? Или всё же придётся городить свой огород из XML-парсера, V8 и чёрта лысого (тот же DOM API руками сооружать)?
QtWebkit позволяет выполнять произвольный JavaScript-код через webView.page().currentFrame().evaluateJavaScript(«JavaScript-код»). Через JS можно получить доступ к DOM.
Сам webView при этом можно не показывать и сделать приложение консольным. Пример использования в сочетании с Python'ом
Хотя, наверняка, работая с Webkit, можно и без Qt обойтись.
Важное замечание по API, данного способа:
Получить в качестве результата evaluateJavaScript(«JavaScript-код») поддерево DOM-элементов у вас не получится, но любую текстовую или числовую информацию — пожалуйста.
Таким образом, всю обработку придется пихать в JS-код.
Я работал с .net на с# компонент webbrowser (в windows текущая установленная версия IE) и успешно проверял его работоспособность на mono (используется библиотеки firefox).
Из явных проблем — неоднозначности в определении окончания загрузки страницы и некоторые особенности по выполнении своего javascript кода на странице — вместо вызова самого метода с большей совместимостью (если требуется вызывать методы из чужого не поддерживаемого кода) лучше вызывать этот метод через setTimeout(1).