1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2200+ и мы растем!
    Скрыть объявление

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

Тема в разделе "Долгий ящик", создана пользователем John, 22 май 2015.

  1. John

    John A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 ноя 2013
    Сообщения:
    48
    Симпатии:
    8
    Знаю, что тема очень много раз поднималась и закрывалась, но у меня есть возможный вариант решения сабжа.

    Для поддержки 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 (например, за пожизненные бесплатные обновления апарсера).
     
    #1 John, 22 май 2015
    Последнее редактирование: 25 май 2015
    vipuncle, scrapefun и Metroid нравится это.
  2. Forbidden

    Forbidden Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    9 мар 2013
    Сообщения:
    3.310
    Симпатии:
    1.777
    В связи с введение поддержки JS в парсере подниму тему

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

    Metroid A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    3 ноя 2014
    Сообщения:
    8
    Симпатии:
    5
    мне например интересна функция фантома по генерации скриншотов сайта еще
    также для рефспама былобы полезно полностью рендерить страницу и обрабатывать все жаваскрипты на странице чтобы попадать в статистику жс-счетчиков типа метрики и гугл-аналитикса а не только в логи сервера
     
    vipuncle нравится это.
  4. vipuncle

    vipuncle A-Parser Pro License
    A-Parser Pro

    Регистрация:
    7 апр 2015
    Сообщения:
    124
    Симпатии:
    41
    Как сильно возрастет нагрузка при использовании фантома?
     
  5. Forbidden

    Forbidden Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    9 мар 2013
    Сообщения:
    3.310
    Симпатии:
    1.777
    узнаем когда его поддержка появится )
     
  6. John

    John A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 ноя 2013
    Сообщения:
    48
    Симпатии:
    8

    для рендеринга JS - но без затачивания под конкретный сайт. Т.е. на входе просто урл - на выходе HTML, который рендерится в браузере после обработки JS кода.
     
  7. Webaz

    Webaz A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    23 янв 2013
    Сообщения:
    35
    Симпатии:
    2
    +1 за скриншоты
     
  8. DeXtR

    DeXtR A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    30 окт 2014
    Сообщения:
    9
    Симпатии:
    1
    Огромный плюс за накрутку жс-счетчиков типа метрики и гугл-аналитикса а не только в логи сервера
     
  9. btr

    btr A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    11 фев 2013
    Сообщения:
    194
    Симпатии:
    114
    тоже интересует подобный функционал, форб все надеемся на тебя :)
     
  10. EceninPars

    EceninPars A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    14 янв 2013
    Сообщения:
    48
    Симпатии:
    6
    Зачем накручивать эти счетчики при рефспаме? реф. ссылки все равно открыто не будут появляться же
     
  11. DeXtR

    DeXtR A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    30 окт 2014
    Сообщения:
    9
    Симпатии:
    1
    Есть такие способы продвижения проектов, например, тебе нужно собрать трафик вебмастеров, ты получаешь сайты с аналитиками, к ним обращаешься много раз , в ответ получаешь целевой трафик , вебмастера заходят на твой сайт.
     
  12. malexoid

    malexoid A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    7 сен 2015
    Сообщения:
    248
    Симпатии:
    58
    не хорошее это дело - засирать статистику сайтам.
     
  13. DeXtR

    DeXtR A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    30 окт 2014
    Сообщения:
    9
    Симпатии:
    1
    Если вы создали действительно хороший сервис для западных вебмастеров и у вас нет 10-20к зелени, которую вы готовы вкинуть на рекламу в разных фейсбуках и бингах (учесть, что они будут наливать 60-70% ботов), то тут как раз может пригодиться такой метод, дешево и эффективно.
     
    Metroid нравится это.
  14. Boomerc

    Boomerc A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    15 мар 2017
    Сообщения:
    35
    Симпатии:
    16
  15. Forbidden

    Forbidden Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    9 мар 2013
    Сообщения:
    3.310
    Симпатии:
    1.777
    есть другие более подходящие аналоги(phantomjs, jsdom)
     
  16. Boomerc

    Boomerc A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    15 мар 2017
    Сообщения:
    35
    Симпатии:
    16
    Выше готовый сервер к phantomjs с api. Поддерживает все или почти все из первого поста.
    P.S.
    вру, раньше был к phantomjs( если не напутал опять)
    И судя по докам он как нельзя лучше подходит к требуемому функционалу, другое дело как это в реальности работает под нагрузкой.
     
  17. Metroid

    Metroid A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    3 ноя 2014
    Сообщения:
    8
    Симпатии:
    5
    апну темку - набирает популярность headless chrome от разрабов гугла
    https://github.com/GoogleChrome/puppeteer
    с ростом количества сайтов на react.js, angular, vue.js необходим подобный инструмент для получения данных которые рендерит только браузер и а-апарсер оказывается бессильным
     
    Forbidden, malexoid и relay нравится это.
  18. Forbidden

    Forbidden Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    9 мар 2013
    Сообщения:
    3.310
    Симпатии:
    1.777
    @Metroid, уже в наших планах есть, спалил :)
     
    Support, Владислав, benone и 2 другим нравится это.

Поделиться этой страницей