Лайфхаки

Маленькие, полезные хитрости

Разработка парсера для amazon. Он-лайн сервисы для парсинга

14.04.2022 в 09:06

Разработка парсера для amazon. Он-лайн сервисы для парсинга

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

Выбирая сервис нужно определиться с необходимым набором опций. Для примера, это могут быть: планировщик – для запуска скриптов по расписанию, шаблоны – для быстрого парсинга по заранее написанным скриптам, api – для получения данных в свои базы, прокси – для парсинга сайтов с защитой, сопоставление данных из разных источников, для кого-то может оказаться важной возможность оплаты от лица компании. Так же, нужно понимать какой сценарий взаимодействия подойдет в вашем случае, сценарий зависит от того, cправится ли сервис с парсингом нужного вам источника на выбранном тарифе, есть ли у вас сотрудник для работы с сервисом, для поддержки работоспособности скриптов (да, скрипты работают до тех пор пока сайт не обновится, что с коммерческими сайтами случается нередко).

Для относительно простых задач подойдет сервис, с настройкой парсинга в визуальном интерфейсе, другими словами, не потребуется разбираться в программировании, чтобы «объяснить» сервису, какие данные вы хотите собирать — достаточно открыть сайт и указать курсором на нужные поля.

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

Третий вариант работы с облачным сервисом – настраиваемое решение или услуга «под ключ». В этом случае с вашей стороны потребуется минимум действий — описать задачу и получить готовый результат. Разработку скрипта, его поддержку и настройку нужных опций сервис берет на себя. Как правило подобные сервисы способны решать сложные задачи, собирать большие объемы данных.

Порядок сервисов ничем не продиктован, автор так видит).

Парсер товаров амазон. Загрузка и обработка данных в AWS


Прогресс не стоит на месте и сейчас большую популярность в обработке и хранении данных завоевывают облачные сервисы и бессерверные модели вычисления. Во многом это связано с простотой и дешевизной такого подхода, когда для построения архитектуры систем для сложных вычислений или обработки больших данных не надо покупать дорогостоящее оборудование, а Вы лишь арендуете на нужное вам время мощности в облаке и разворачиваете нужные ресурсы достаточно быстро за относительно небольшую плату.Одним из самых крупных и известных на рынке поставщиков облачных технологий является компания Amazon. Рассмотрим на примере среды Amazon Web Services (AWS) построение аналитической системы для обработки данных по нашему инвестиционному портфелю.В AWS обширный выбор инструментов, но мы будем пользоваться следующими:
  • – объектное хранилище, которое позволяет хранить практически неограниченные объемы информации;
  • AWS Glue – мощнейший облачный ETL-сервис, который может сам определять по заданным исходным данным структуру и генерить ETL-код;
  • Amazon Athena – serverless сервис интерактивных запросов SQL, позволяет быстро анализировать данные из S3 без особой подготовки. Еще он имеет доступ к метаданным, которые подготавливает AWS Glue, что позволяет сразу после прохождения ETL обращаться к данным;
  • Amazon QuickSight – serverless BI-сервис, можно строить любую визуализацию, аналитические отчеты «на лету» и т.д..
С документацией у Amazon все в порядке, в частности, существует неплохая статья, где описано как создавать и пользоваться таблицами и данными, посредством AWS Glue. Давайте и мы воспользуемся основными идеями этой статьи и применим их для создания своей архитектуры аналитической отчетной системы.Подготовленные нашим парсером отчетов CSV-файлы будем складывать в S3 bucket. Планируется, что соответствующая папка на S3 будет пополняться каждую субботу – по завершении торговой недели, поэтому не обойтись без секционирования данных по дате формирования и обработки отчета.Помимо оптимизации работы SQL-запросов к таким данным, этот подход позволит нам проводить дополнительный анализ, например, получать динамику изменения финансового результата по каждой бумаге и т.д.

Работа с Amazon S3

  • Создадим бакет на S3, назовем его «report-parser»;
  • В этом бакете «report-parser» создадим папку под названием «my_trader_diary»;
  • В каталоге «my_trader_diary» создадим каталог с датой текущего отчета, например, «date_report=2018-10-01» и поместим в него CSV-файл;
  • Только ради эксперимента и лучшего понимания секционирования создадим еще два каталога: «date_report=2018-09-27» и «date_report=2018-10-08». В них положим тот же CSV-файл;
  • Работа с AWS Glue

    По большому счету, можно обойтись лишь Amazon Athena чтобы создать внешнюю таблицу из данных, лежащих на S3, но AWS Glue – более гибкий и удобный для этого инструмент.

    • Заходим в AWS Glue и создаем новый Crawler, который будет из разрозненных по отчетным датам CSV-файлов собирать одну таблицу:
      • Задаем имя нового Crawler;
      • Указываем хранилище, откуда брать данные (s3://report-parser/my_trader_diary/)
      • Выбираем или создаем новую IAM роль, которая будет иметь доступ к запуску Crawler и доступ к указанному ресурсу на S3;
      • Когда Crawler перейдет в состояние Ready, запускаем его!
      • Как только он отработает, в закладке AWS Glue: Database -> Tables появится новая таблица my_trader_diary:
      Рассмотрим сформированную таблицу более подробно.Если щёлкнуть по названию созданной таблицы, то мы перейдем на страницу с описанием метаданных. Внизу расположена схема таблицы и самым последним идет столбец, которого не было в исходном CSV-файле — date_report. Этот столбец AWS Glue создает автоматически на основе определения секций исходных данных (в бакете S3 мы специальным образом именовали папки — date_report=YYYY-MM-DD, что позволило использовать их как секции, разделенными по дате).