Улучшение Поддержка Javascript

  • Автор темы Автор темы John
  • Дата начала Дата начала

John

A-Parser Enterprise License
A-Parser Enterprise
Знаю, что тема очень много раз поднималась и закрывалась, но у меня есть возможный вариант решения сабжа.

Для поддержки 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 в парсере подниму тему

в данном кейсе phantomjs нужен только для рендеринга JS ?


для рендеринга JS - но без затачивания под конкретный сайт. Т.е. на входе просто урл - на выходе HTML, который рендерится в браузере после обработки JS кода.
 
Огромный плюс за накрутку жс-счетчиков типа метрики и гугл-аналитикса а не только в логи сервера
 
тоже интересует подобный функционал, форб все надеемся на тебя :)
 
Зачем накручивать эти счетчики при рефспаме? реф. ссылки все равно открыто не будут появляться же
 
Зачем накручивать эти счетчики при рефспаме? реф. ссылки все равно открыто не будут появляться же
Есть такие способы продвижения проектов, например, тебе нужно собрать трафик вебмастеров, ты получаешь сайты с аналитиками, к ним обращаешься много раз , в ответ получаешь целевой трафик , вебмастера заходят на твой сайт.
 
Есть такие способы продвижения проектов, например, тебе нужно собрать трафик вебмастеров, ты получаешь сайты с аналитиками, к ним обращаешься много раз , в ответ получаешь целевой трафик , вебмастера заходят на твой сайт.
не хорошее это дело - засирать статистику сайтам.
 
не хорошее это дело - засирать статистику сайтам.
Если вы создали действительно хороший сервис для западных вебмастеров и у вас нет 10-20к зелени, которую вы готовы вкинуть на рекламу в разных фейсбуках и бингах (учесть, что они будут наливать 60-70% ботов), то тут как раз может пригодиться такой метод, дешево и эффективно.
 
есть другие более подходящие аналоги(phantomjs, jsdom)
 
Выше готовый сервер к phantomjs с api. Поддерживает все или почти все из первого поста.
P.S.
вру, раньше был к phantomjs( если не напутал опять)
И судя по докам он как нельзя лучше подходит к требуемому функционалу, другое дело как это в реальности работает под нагрузкой.
 
апну темку - набирает популярность headless chrome от разрабов гугла
https://github.com/GoogleChrome/puppeteer
с ростом количества сайтов на react.js, angular, vue.js необходим подобный инструмент для получения данных которые рендерит только браузер и а-апарсер оказывается бессильным
 
Назад
Верх