August 15th, 2016

Парсер третий, часть десятая

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

  • Возник сайд-проект "длиною в два месяца".
  • Попутно я понял, что часть кода парсера второго надо копипастить в третий. И провёл ряд работ по отделению парсинга от бота.
  • Вырисовываемая структура напомнила API для полноценного ETL-framework.
  • Закладку про ETL оставил, но сначала надо было закончить сайд-проект. Не всё сразу.
  • К концу года сайд-проект следовало финализировать, переходя от прототипа к работающей бизнес-функции по получению инфы благодаря боту и парсеру.
  • И тут открытие: оказывается, другой целевой ресурс держался в лапах всё той же фирмы (об этом я узнаю вскоре). Всё, что работало декабрь, январь и февраль и шлифовалось до продакшна - умерло. Антибот!!
  • Впоследствии я взял паузу и переключил силы на основную работу, возникла потребность в компании отправить меня в многочисленные командировки в Швейцарию.
  • И вот недавно возобновил работу.
  • За это время компаньон напилил ДО ЖУТИ контента для сайд-проекта.
  • Под этот контент надо по-быстрому воткнуть миграционный тул. Там всё прозрачно, на вход архив, принимаем, распаковываем, меняем кодировку с CP1251 на UTF8, парсим контент, грузим в предзаготовленные таблицы.
  • Ну и в довершение - эмуляция браузера - война с антиботом.

На выходе информационно-рекомендательный ресурс с платными фичами для своей ЦА. Кусок ETL фреймворка, под который нужен движок. Причём тут уже башню рвёт. Последние три-четыре года занимаюсь ETL задачами и вижу, как процесс решения той или иной задачи (т.е. написания кода с использованием ETL Framework) можно ускорить многократно. Т.е. движок может быть просто огненным. Но надо держать себя в руках и пустить-таки ресурс, GO LIVE.