Подтвердить что ты не робот

Библиотека Python для рендеринга HTML и javascript

Есть ли какой-нибудь модуль python для рендеринга HTML-страницы с javascript и возврата объекта DOM?

Я хочу проанализировать страницу, которая генерирует почти весь ее контент с помощью javascript.

4b9b3361

Ответ 1

Большим усложнением здесь является эмуляция полной среды браузера за пределами браузера. Вы можете использовать автономные интерпретаторы javascript, такие как Rhino и SpiderMonkey, для запуска javascript-кода, но они не предоставляют полный браузер, такой как среда, чтобы полностью отобразить веб-страницу.

Если мне нужно решить такую ​​проблему, я бы сначала посмотрел, как javascript отображает страницу, вполне возможно, что она извлекает данные через AJAX и использует это для рендеринга страницы. Затем я мог использовать библиотеки python, такие как simplejson и httplib2, для непосредственного сбора данных и использования их, что отрицало необходимость доступа к объекту DOM. Однако, что только одна возможная ситуация, я не знаю точной проблемы, которую вы решаете.

Другие варианты включают селен, упомянутый Łukasz, какой-то вебкайт, вложенный сумасшествие, какой-то безумный сценарий IE win32 или, наконец, решение на основе pyxpcom (с добавлением сумасшествия). Все это имеет недостаток, требующий практически полностью работающего веб-браузера для воспроизведения python, что может не быть вариантом в зависимости от вашей среды.

Ответ 2

Вы можете использовать python-webkit для этого. Требуется работающий glib и GTK, но это, вероятно, менее проблематично, чем обертывание частей webkit без glib.

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