Автоматизация процессов с помощью PantomJS

Author Автор: Роман Чернышов    Опубликовано: 25 ноября 2018

Автоматизация процессов с помощью PantomJSДрузья, доброго времени! Нередко возникает необходимость автоматизировать те или иные рабочие процессы, которые осуществляются вручную через интернет браузер. Это может быть проставление статусов, рассылка уведомлений и сообщений, отслеживание меняющихся данных или парсинг страниц какого либо каталога. Например в одном моем проекте была необходимость отслеживать появление новых прогнозов на спортивные матчи, которые публиковались на специализированных сайтах и были доступны только авторизированным пользователям. При этом на сайте стояла сложная система авторизации, и простым PHP Curl, имитировать работу пользователя было достаточно сложно. Решением проблемы, оказался, отличный безоконной браузерный движок PantomJS, позволяющий написать скрипт-бота на JS под выполнение любых задачи. Далее обо всем подробнее.

О PantomJS

Как я уже сказал выше — это безоконной браузерный движок, который управляется через консоль, поддерживает сценарии работы на JavaScript, а также большинство стандартных функций движка WebKit, среди которых стандартны и технологии: DOM, CSS, JSON, Canvas и SVG. Что позволяет работать с сайтами, путем написание сценариев на выполнение определенных действий, имитируя работу живого пользователя и обычного полноценного браузера. Нет необходимости вникать в содержание веб-страниц, их HTML код, JS скрипты, не нужно парсить HTTP запросы и золовки, не нужно писать скрипты для их имитации и обработки с помощью CURL или чего либо еще.

Принцип работы — зашел на страницу, ввел в форму нужные данные, кликнул куда надо и пошел дальше, все просто быстро, надежно. И самое главное, весь процесс происходит в рамках типичного браузера и управляется сценарием на JS.

Впечатления

Раньше для автоматизации процессов работы с удаленными веб ресурсами, я писал скрипты на PHP, разбирал Ajax запросы, имитировал работу браузера по средствам CURL, прописывал нужные заголовки к запросам. Иными словами для реализации одного или нескольких простых действий, приходилось изучать и детально углубляться во все эти тонкости работы сайта.

Познакомившись с PantomJS, в этот же день я написал комплекс систем для парсинга данных и автоматизации ряда рабочих процессов — все это, повторюсь, за один день. Быстрое понимание принципов технологии PantomJS и быстрое решение поставленных задач. Все, что требуется для написания бота, это знания JavaScript. Кстати можно без проблем включать в код jQuery и работать дальше с ним, что еще больше упрощает задачу.

Автоматизация процессов

Расскажу немного о том, какие процессы я автоматизировал с помощью PantomJS, что-то в последствии мне не пригодилось или потребность в этом отпала, что-то я использую по сей день, сильно облегчая себе работу.

Регистрация и продление доменов через веб-интерфейс

В одном проекте, требовалось автоматизировать процесс регистрации доменов, в разных доменных зонах у разных регистраторов. Так как ни один регистратор не предоставлял API для работы с доменами, я написал скрипт на PantomJS, который заходил в панель управления нужного регистратора и совершал необходимы мне действия.

Работа с криптовалютными биржами

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

Автоматические ответы на типовые вопросы в системе личных сообщений

Один проект был связан с торговлей на форумах и досках объявлений, сейчас это направление также актуально. Так как форумов и аккаунтов много, а большинство вопросов типовые(о цене и доставке), был написан скрипт, который заходил в нужный аккаунт и отвечал на типовые вопросы, автоматически, занося информацию по клиентам в централизированную базу данных.

Сбор данных из закрытых разделов сайта

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

Парсинг закрытого форума

Был написан умный парсер, с имитацией поведения пользователя, который сложно отследить, для парсинга веток закрытого форума. Скрипт работает по определенным алгоритмам, при этом скорость парсинга не большая, но зато процесс очень эффективный — практически удалось избежать блокировки рабочих аккаунтов, системой анти-бот, форума.

Тестирование сайтов, скриптов

Несколько проектов были связаны с тестированием функционала сайтов и скриптов, для чего были также написаны инструкции для PantomJS. Что существенно позволило сократить время и силы на ручном тестировании.

Заключение

Вообще, применение PantomJS безгранично, с его помощью можно очень быстро написать скрипт автоматизирующий рутинные процессы и тем самым хорошенько сэкономить время и деньги, как в личных проектах, так и в бизнесе. На данный момент проект PantomJS находится в заморозке, последняя стабильная версия 2.1.1, вышла в 2016 году, но тем не менее она достаточно актуальна и по сей день. Впрочем есть и альтернативы данной технологии, это CasperJS, Selenium, iMacros и т.д. С помощью любой из этих технологий, можно автоматизировать вашу рутинную работу, реализовав практически любые ваши идеи.

Буду рад сотрудничеству, обращайтесь!

Оставить комментарий

Автор блога
Роман Чернышов
Веб-разработчик,
Full Stack
Senior, Architect
PHP, JavaScript, Node.JS, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Моя книга
Книга. Веб-разработчик. Легкий вход в профессию
Печатная книга
Веб-разработчик.
Легкий вход в профессию
Купить за 159₽
Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка