Есть ли какой-либо модуль python для рендеринга HTML-страницы с помощью javascript и возврата объекта DOM?
Я хочу проанализировать страницу, которая генерирует почти весь свой контент с помощью javascript.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Большая сложность здесь заключается в эмуляции всей среды браузера за пределами браузера. Вы можете использовать автономные интерпретаторы javascript, такие как Rhino и SpiderMonkey, для запуска кода javascript, но они не предоставляют полноценную среду, подобную браузеру, для полной визуализации веб-страницы.
Если бы мне нужно было решить такую проблему, я бы сначала посмотрел, как javascript отображает страницу, вполне возможно, что он получает данные через AJAX и использует их для визуализации страницы. Затем я мог бы использовать библиотеки Python, такие как simplejson и httplib2, для прямого извлечения данных и их использования, устраняя необходимость доступа к объекту DOM. Однако это только одна возможная ситуация, я не знаю, какую именно проблему вы решаете.
Другие варианты включают селен, упомянутый Лукашем, какое-то безумие, встроенное в webkit, какое-то безумие сценариев IE win32 или, наконец, решение на основе pyxpcom (с добавленным безумием). Все они имеют недостаток, заключающийся в том, что для работы Python требуется практически полностью работающий веб-браузер, что может не подходить в зависимости от вашей среды.
Вероятно, вы можете использовать для этого python-webkit. Требуется работающий glib и GTK, но это, вероятно, менее проблематично, чем оборачивать части webkit без glib.
Я не знаю, делает ли он все, что вам нужно, но я думаю, вам стоит попробовать.
Я думаю, что pywebkitgtk может отображать только html-страницу. Можно ли получить исходный xml-код после его рендеринга? По этому поводу недостаточно документов
не могли бы вы переименовать вопрос в что-то вроде «эмуляция DOM браузера в python» - текущий вопрос на самом деле не отражает вопрос.