Автоматизация процессов с помощью 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
предложить оффер
- jQuery: как получить значение атрибута?
- PHP работа с изображением, класс SimpleImage
- Интеграция с API ОСАГО сайта sravni.ru
- Комментарии на PHP, Ajax, mySQL
- PHP: Категории бесконечного уровня вложенности.
- Nginx редирект на другой сервис с сохранением URL спросил (а) Сергей
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Обзор Insurance CMS — платформы для сайтов по страхованию к записи
- Консольный скрипт(JavaScript) для автоматических заказов на OZON к записи
- Консольный скрипт(JavaScript) для автоматических заказов на OZON к записи
- Как создать Telegram-бота с авторизацией через сайт к записи
- PHP скрипт: каталог закладок на сайты к записи
- Валидация на PHP к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
Archive
- +2025 (24)
- Апрель 2025 (5)
- Март 2025 (4)
- Февраль 2025 (9)
- Январь 2025 (6)
- +2024 (35)
- Декабрь 2024 (7)
- Ноябрь 2024 (13)
- Октябрь 2024 (8)
- Сентябрь 2024 (1)
- Август 2024 (5)
- Май 2024 (1)
- +2023 (27)
- Ноябрь 2023 (1)
- Октябрь 2023 (13)
- Сентябрь 2023 (10)
- Апрель 2023 (1)
- Март 2023 (1)
- Февраль 2023 (1)
- +2022 (21)
- Декабрь 2022 (11)
- Ноябрь 2022 (1)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (36)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (41)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (7)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Проверка CORS онлайн 04.04.2025
- Декодер JWT онлайн 03.04.2025
- Конвертер RGB в HEX (и обратно) онлайн 02.04.2025
- Конвертер Markdown в HTML онлайн 02.04.2025
- Создание сертификата Let’s Encrypt для домена и всех поддоменов 01.04.2025