Требуется консольный Headless браузер для linux

Лугару18 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
09.03.2013

Необходим консольный Headless браузер для linux.

1. Полноценное выполнение JavaScript.

2. Управление всеми возможностями браузера командами из PHP, например:

exec( "brouser get='http://site.ru/'" ); переходит по указанному URL

exec( "brouser click='текст на странице'" ); кликает по указанному тексту/элементу/координатам на странице

Заполнение и отправка форм и т.д. То есть через PHP в этом браузере должна быть возможность сделать все что может сделать обычный пользователь в своем браузере. В идеале еще бы иметь возможность эмулировать движения мышью, ну это уж как получится... если возможно...

3. При отправке данных должна быть возможность указать свои HTTP заголовки запроса User-Agent, Куки, реферер и т.д..

4. Желательно иметь возможность указать через какой IP отправлять запросы, например если на сервере несколько IP адресов.

5. Обратно в PHP или в файл если указан, отдаются данные такие как HTTP заголовки ответа, исходный код страницы, Cookies включая те что отсутствуют в заголовках ответа и устанавливаются через JavaScript. Данные должны отдаваться в каком то структурированном виде чтобы их можно было без лишнего геморроя спарсить и обработать в PHP.

6. Например если зашли на страничку браузером, получили данные, кликнули где то (без перезагрузки страницы), сработал JavaScript и установил новые куки, браузер в этом случае должен сразу сам вернуть новые данные, например в файл, если указан вывод в файл.

7. Очень желательно чтобы браузер из себя представлял всего 1 файл, а не целый набор...

8. Разумеется желательны минимальный размер файла браузера и максимальная скорость работы.

Много искал по сети готовые решения, но к сожалению в полной мере ничего не удовлетворило, хотя попадалось множество решений, так что я думаю специалисту не составит труда взять готовый движок браузера и обернуть его в свою оболочку которая принимала бы команды от PHP, передавала их браузеру и возвращала результат.

Жду ваших предложений!

PS: Вот статья в которой описывается с примерами создание подобного браузера, и даже доступен для скачивания простейший рабочий вариант http://anosov.org.ru/2012/01/htmlunit-for-indexing-javascript/

Заявки фрилансеров