Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Практика использования phantomjs


(Raynor) #1

Привет!
Поставлена задача сделать парсер нескольких ресурсов.
Все вроде хорошо, сделал как мог )).
Но связка java + webdriver+ браузер ужасно долго работает. Может несколько суток занимать.
Есть какой-нибудь способ поженить эту связку с phantomjs (заменить браузер)?
Спасибо


(Дмитрий Жарий) #2

Самым быстрым вариантом будет программирование PhantomJS на JavaScript.

Вебдрайвер поддерживает работу с PhantomJS, но, это всегда будет намного медленнее «родного» варианта


(Raynor) #3

К сожалению я слаб в JS.
Поэтому ищу способ без переписывания кода или почти без него перепрыгнуть на что-то более быстрое.
Пробовал htmlunitdriver к сожалению не выходит. Похоже JS как-то по другому отрабатывается


(Michael Bodnarchuk) #4

Так а в чем проблема? Запускаете PhantomJS в режиме ghostdriver и весь ваш Java код будет работать уже с фантомом.


(heartwilltell) #5

Я по своей скромной практике могу сказать, что выигрыш в скорости при использовании гостдрайвера не особо велик.
Для фантома кстати есть вот такая штука - http://casperjs.org/ - немного упрощает синтаксис в написании тестов.
Возможно стоит пустить тесты в несколько потоков?


(Дмитрий Жарий) #6

Phantom работает не намного быстрее всех остальных браузеров, если решающий фактор – это скорость загрузки страницы. Все браузеры грузят страницу примерно одинаково.
Phantom выигрывает в случае сложности парсинга страницы – чем больше элементов в DOM страницы нужно извлечь и чем больше JavaScript для этого нужно выполнить – тем больше будет ощущаться прирост скорости.

Для статических страниц или страниц, большая часть которых генерируется на стороне сервера – прирост скорости будет сравнительно не большим.