Знаю, что тема очень много раз поднималась и закрывалась, но у меня есть возможный вариант решения сабжа. Для поддержки Javascript сайтов предлагаю сделать отдельный парсер по аналогии с Net::HTTP или опцию в этом парсере. Работать парсер будет так: 1) при запуске task стартует процесс phantomjs (http://phantomjs.org), который поднимает веб-сервер на порту port, закрепленном за данным task 2) апарсер для каждого query отправляет HTTP запрос на http://localhost:port c необходимыми ему параметрами: url, http_headers и др. 3) phantomjs получив такой HTTP запрос, открывает новую страницу и совершает запрос к url с заданными параметрами, после чего ждет пока не наступит таймаут или не выполнится условие "check content regex" из параметров парсера (при этом проверка идет не по html ответу сервера, а по html, отрендеренному в браузере). 4) phantomjs возвращает отрендеренный html код в апарсер в ответе на HTML запрос из п.2 5) апарсер продолжает обработку query, после чего переходит к следующему. 6) после завершения task апарсер посылает в phantomjs запрос, который инициирует процедуру выключения phantomjs Отвечу на вопросы, которые могут сразу возникнуть: 1) да, веб-сервер, который поднимает phantomjs многопоточный 2) да, phantomjs имеет опцию для смены proxy в процессе работы (runtime) Со своей стороны готов полностью взять на себя разработку js кода для phantomjs (например, за пожизненные бесплатные обновления апарсера).
В связи с введение поддержки JS в парсере подниму тему в данном кейсе phantomjs нужен только для рендеринга JS ?
мне например интересна функция фантома по генерации скриншотов сайта еще также для рефспама былобы полезно полностью рендерить страницу и обрабатывать все жаваскрипты на странице чтобы попадать в статистику жс-счетчиков типа метрики и гугл-аналитикса а не только в логи сервера
для рендеринга JS - но без затачивания под конкретный сайт. Т.е. на входе просто урл - на выходе HTML, который рендерится в браузере после обработки JS кода.
Есть такие способы продвижения проектов, например, тебе нужно собрать трафик вебмастеров, ты получаешь сайты с аналитиками, к ним обращаешься много раз , в ответ получаешь целевой трафик , вебмастера заходят на твой сайт.
Если вы создали действительно хороший сервис для западных вебмастеров и у вас нет 10-20к зелени, которую вы готовы вкинуть на рекламу в разных фейсбуках и бингах (учесть, что они будут наливать 60-70% ботов), то тут как раз может пригодиться такой метод, дешево и эффективно.
Выше готовый сервер к phantomjs с api. Поддерживает все или почти все из первого поста. P.S. вру, раньше был к phantomjs( если не напутал опять) И судя по докам он как нельзя лучше подходит к требуемому функционалу, другое дело как это в реальности работает под нагрузкой.
апну темку - набирает популярность headless chrome от разрабов гугла https://github.com/GoogleChrome/puppeteer с ростом количества сайтов на react.js, angular, vue.js необходим подобный инструмент для получения данных которые рендерит только браузер и а-апарсер оказывается бессильным