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

Есть ли средства командной строки или библиотеки для рендеринга веб-страниц, которые используют JavaScript?

Ускорение страницы в Интернете, похоже, ударило меня как о стене, так как все больше и больше сайтов, которые зависят от JavaScript для отображения частей экрана.

Мне кажется, что при выпуске стольких рассылок с открытым исходным кодом и рендеринга JavaScript (например WebKit, Gecko и Chromium + V8), что кто-то должен был сделать инструмент для загрузки страницы и отображения ее JavaScript без необходимости запуска реального браузера. Тем не менее, я не поднимаю то, что ищу с моими поисками. Я нашел такие инструменты, как Selenium-rc, но они зависят на запущенном браузере. Меня интересует любой инструмент или библиотека, которые могут сделать одно (или оба) из следующего:

  • Программа, которая может быть запущена из командной строки (* nix), которая, с учетом источника страницы, возвращает источник страницы, отображаемый каким-то движком JS.

  • Интегрированная поддержка на определенном языке, которая позволяет (легко) передавать исходный код страницы и возвращает источник страницы, отображаемый каким-то движком JS.

Я думаю, что №1 предпочтительнее в общем смысле, но # 2 будет более полезным, если инструмент существует на языке, в котором я хочу работать. Кроме того, меня не интересует конкретный JS-движок - любой относительно современный один сделаю. Что там?

4b9b3361

Ответ 2

Вы можете посмотреть HTMLUnit. Основная цель - автоматическое веб-тестирование, но я думаю, что это может позволить вам получить отображаемую страницу.

Ответ 3

Ну, там DumpRenderTree инструмент, который используется как часть наборов тестов WebKit. Я не уверен, насколько подходит для превращения в автономный инструмент, но он делает то, что вы просите (визуализируйте HTML, запустите JavaScript и выгрузите его дерево визуализации на диск).

Ответ 4

Поскольку JavaScript может выполнять довольно много манипуляций с объектной моделью документа веб-страницы (DOM), кажется, что нужно точно очистить содержимое произвольной страницы, вам нужно будет не только запустить механизм JavaScript, d также необходимо полное и точное представление DOM страницы. Это то, что вы получите, только если у вас появился настоящий механизм браузера. Для этого можно использовать встроенный, не отображаемый движок WebKit или Gecko, а затем после подходящей задержки загрузки для выполнения script просто выгрузите содержимое DOM в HTML-форму.

Ответ 5

Мы использовали Rhino, чтобы сделать некоторое автоматическое тестирование с Java. Кажется, это сработает для вас:)

Ответ 6

Я думаю, что есть пример кода для Qt, который использует включенный WebKit для рендеринга страницы в pixmap. оттуда до полной утилиты CLI просто определяет ваши потребности.

Конечно, для большинства скриншотов вам нужен текст, а не pixmap... если это то, что вы хотите, лучше проверьте Rhino

Ответ 7

Существует Cobra Engine для Java (http://lobobrowser.org/cobra.jsp), который обрабатывает Javascript (он также имеет средство визуализации, но это необязательно). Я никогда не использовал его, но слышал, что об этом говорили хорошие вещи.

Ответ 8

Очень маленький код, чтобы WebView отображал страницу, не отображая ничего, но это должно быть приложение GUI. Они также могут принимать аргументы командной строки и скрывать окно. Используя WebKit, это возможно в инструменте.

Помимо сложного доступа DOM в Objective-C, WebKit также может использовать JavaScript и вместе с jQuery, который обеспечивает отличное очищающее решение. Однако я не знаю какого-либо универсального приложения, которое делает это.