ДжазТим — надежный технологический партнер

Agile разработка ПО на Java

Приложение для автоматизации сбора данных с деловых порталов

Бизнес составляющая проекта

Проект представляет собой платформу по автоматизации сбора и обработки данных с различных деловых порталов. Поддержан анализ взаимосвязей между данными аккаунтов с различных источников.

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

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

Техническое описание проекта


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

Источником данных для краулера может выступать любая деловой портал/социальная сеть/сайт, в которой содержится информация по контактам, например, LinkedIn, angel.co, crunchbase и др. Данные со всех систем собираются, сопоставляются и проходят обработку на поиск дубликатов, проверку на наличие данных записей в уже имеющихся в базе заказчиков. После это происходит объединение данных с существующей базой данных краулера. Для запуска краулера его необходимо настроить и указать, с каких сайтов собирать информацию, какую информацию стоит собирать, т.е. имеется достаточно тонкая настройка.

Решение для обработки исключений компонентов при сканировании

Решение для обработки исключений компонентов при сканировании

Приведём пример сценария работы краулера. Заходим на сайт angel.co, сканируем список компаний с заданным условием: «Если компания получила инвестиции на данном сайте, я хочу посмотреть, есть ли в её Linkedin-профиле вакансия Java-разработчика. Если такая вакансия имеется, добавляем контакт данной компании в базу потенциальных клиентов».

Считывание с сайта производится с помощью инструмента автоматизации Selenium WebDriver. Параметры поиска хранятся в Excel-файлах на локальном либо облачном хранилище, например, в Google Drive, и загружаются из хранилища во время запуска приложения.

Приложение запускается на сервере компании с помощью Jenkins, в виде отдельных билдов. Каждый билд настраивается с учётом общих параметров запуска краулера и выбранных параметров поиска данных на сайте. После завершения работы краулер отправляет пользователям отчёт о результатах и Excel-файлы со считанными данными на электронную почту.

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

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

Какие функции выполняет система


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

Существует возможность параллельного запуска через приложение нескольких поисковых запросов (по обоим типам поиска, разным регионам и т.д.).

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

Технологии, используемые на проекте

Языки программирования: Java SE 8, JavaScript.
Фреймворки, библиотеки: Lombok, Log4J, Selenium WebDriver, TestNG.
Используемые API: Apache POI, JavaMail, Google API (Drive, GMail), REST-assured (2captcha API).
Инфраструктура: Apache Subversion (SVN), Jenkins, IntelliJ IDEA.

Особенности проекта

  1. Работа ведётся в соответствии с методологией Scrum/Agile.
  2. На проекте осуществляется мануальное тестирование. Это, в частности, объясняется следующим:
    • параллельный запуск Unit-тестов наряду с основными билдами может привести к превышению лимитов на количество запросов в единицу времени (дополнительные баны);
    • некоторые ситуации (например, сбои в работе сайта) нельзя воспроизвести, чтобы протестировать работу краулера автоматически.

    Выявление ошибок в работе приложения производится на основе изучения содержимого отчётов и файлов с данными, высылаемых пользователям. При изучении файлов сравниваются фактически собранные краулером данные и данные на сканируемом сайте.

  3. Порталы для поиска и установления деловых контактов регулярно обновляются и расширяют свои возможности. В этом случае для корректной работы краулера требуется его периодическое обновление. Для этого требуется привлечение специалистов, но краулер спроектирован таким образом, что для обновления нам не нужно менять большое количество кода (делать большой рефакторинг). Достаточно внести незначительные изменения в определённые программные слои краулера.
  4. Длительность работы приложения может существенно отличаться и во многом зависит от количества считываемых данных.

Скриншоты

Результаты проекта

  • Выполнена автоматизация работы специалистов отдела продаж и маркетинга компании ДжазТим, которая позволила сократить их трудозатраты по сбору данных о потенциальных клиентах в несколько раз.
  • Приложение ежедневно используется отделом продаж и маркетинга. Мы всегда имеем доступ к актуальным данным о вакансиях (и опубликовавших их компаниях), публикуемых на различных порталах, что служит для поиска и установления деловых контактов.

Достижения компании на проекте

  • За первые 8 месяцев работы краулера отделу продаж и маркетинга удалось собрать и обработать такое количество лидов, которое превосходило число собранных за такой же промежуток времени в несколько десятков раз.
  • Краулер уже помог найти для компании несколько интересных партнёров и клиентов, в том числе из новых географических регионов.
  • Благодаря доскональному изучению интерфейса и особенностей работы различных порталов для поиска и установления деловых контактов, успешно решён ряд задач, связанных с оптимизацией работы краулера и обеспечением её непрерывности во время считывания данных.

Свяжитесь с нами, чтобы обсудить Ваш IT-проект

    Имя *

    Название компании

    Email *

    Телефон

    Чем мы можем Вам помочь? *

    * – Обязательные поля для заполнения