ПРОЕКТ

Скрейпинг веб-данных для очистки и экспорта

Разработка кастомного ПО, Веб-скрейпинг, Извлечение данных, Очистка данных, Удаление дубликатов, Валидация данных, Интеграция с базами данных, Автоматизация экспорта

  • Сфера деятельности: Бизнес-услуги
  • Люксембург Местоположение: Люксембург
  • Срок выполнения: 16 недель
  • Технологии: Python, PHP
4+ месяцев

Клиент тратит время на сбор записей с сайтов, из баз данных и API, прежде чем данные будут готовы к анализу или импорту. ПО для веб-скрейпинга принимает страницы, конечные точки и файлы, извлекает выбранные поля, очищает и валидирует их. В результате получаются единообразные данные для таблиц, SQL-баз или приложений. Это дает компании по обработке данных повторяемый способ подготовки записей из разных источников, сокращая ручной труд и переделки.

Краткое описание

Проблема

Клиент тратит много времени на ручной сбор и подготовку записей из разных источников.

Решение

Решение стало повторяемым процессом сбора и очистки веб-данных с извлечением, валидацией и экспортом.

Результат

ПО призвано сократить время ручной подготовки и количество ошибок до передачи данных в место назначения.

История клиента

Клиент - компания по обработке данных из Люксембурга. Она объединяет записи с сайтов, из баз данных и API для дальнейшего использования.

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

Цель была простой: создать повторяемые процессы на Python, в командной строке, блокноте или приложении. Они должны были извлекать, очищать и валидировать данные перед отправкой в нужное место назначения.

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

Клиент хотел

  1. Запускать повторяемые процессы на Python, в командной строке, блокноте или приложении.
  2. Экспортировать очищенные результаты в форматах CSV, Excel, Parquet, JSON, Sheets, текста или SQL.
  3. Очищать, нормализовать, преобразовывать, удалять дубликаты, фильтровать, сортировать и объединять данные.
  4. Предоставить журналы, отчеты об ошибках, документацию, инструкции по настройке, код и зависимости.

Почему готовое решение не подошло

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

Обзор проекта

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

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

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

Рабочая область очистки показывает исходные и очищенные значения, группы дубликатов и результаты валидации. Правила очистки и удаления дубликатов создают единую структуру.

Экран экспорта связывает столбцы и схемы с CSV-, Excel- или базами данных. Сводки обработки и журналы запусков отображают состояние каждого запуска.

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

Ключевые реализованные функции

  • Веб-скрейпинг выбранных страниц и полей
  • Извлечение из баз данных, API, файлов и документов
  • Повторяемые процессы на Python и в приложении
  • Очистка, нормализация и преобразование
  • Обнаружение дубликатов и объединение записей
  • Валидация схем и полей
  • Отчетность по пропущенным записям и ошибкам
  • Экспорт в CSV, Excel, Parquet, JSON, текст, Sheets и SQL

Дополнительные функции

+ Постраничная обработка + Поддержка динамических страниц и JavaScript + Обработка ограничений частоты запросов + Обработка CAPTCHA + Дополнительные подключения к назначениям + Документация по обработке и поддержка настройки

Кому еще подойдет это решение

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

Исследовательская и аналитическая команда

Задача Подготавливает записи из сайтов, API, файлов и баз данных для анализа и отчетности.
Как помогает решение Решение извлекает выбранные поля, валидирует их, удаляет дубликаты и экспортирует единый набор данных.

Компания по обработке документов

Задача Обрабатывает партии PDF-файлов, отчетов, счетов, форм и отсканированных документов.
Как помогает решение Решение извлекает данные из документов, применяет правила очистки и валидации, а также регистрирует пропущенные или необработанные элементы.

Команда по работе с данными

Задача Импортирует извлеченные записи в таблицы, SQL-базы или приложения.
Как помогает решение Решение связывает очищенные столбцы с нужным назначением и сохраняет сводку обработки каждого запуска.

Технологический стек

Python

Процессы извлечения и очистки

Python запускает повторяемые процессы, которые извлекают, очищают, нормализуют, валидируют и объединяют записи.

PHP

Импорт и экспорт таблиц

PHP поддерживает обработку таблиц и CSV, когда процесс использует инструменты на PHP.

JavaScript / TypeScript (Node.js)

Обработка веб-данных и таблиц

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

SQLAlchemy

Абстракция баз данных

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

PyMySQL

Доступ к базе MySQL

PyMySQL (драйвер Python для MySQL и MariaDB) подключает процесс к записям MySQL.

firecrawl-anydoc

Преобразование документов

firecrawl-anydoc (библиотека, преобразующая документы и таблицы в Markdown) поддерживает извлечение содержимого документов.

openpyxl

Чтение и запись XLSX

openpyxl (библиотека Python для книг Excel) читает и записывает файлы XLSX.

cheerio

Парсинг и скрейпинг HTML

cheerio (библиотека для парсинга и изменения HTML) извлекает выбранное содержимое веб-страниц.

CSV, XLSX, JSON, Parquet

Структурированный вывод файлов

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

Интеграции

PostgreSQL, MySQL, and SQLite

Процесс читает записи из базы данных и записывает очищенные данные в SQL-назначения.

Google Sheets

Очищенные записи сопоставляются со структурой Google Sheets.

Excel

Система читает источники-таблицы и экспортирует сопоставленные записи в файлы Excel.

Websites and APIs

Скрейпер принимает страницы и ответы API и извлекает из них выбранные поля.

Результат

Источники и поля определены в одном месте

Экран настройки источников дает компании по обработке данных понятную отправную точку для веб-скрейпинга и извлечения данных. Он объединяет сведения об источнике, необходимые поля и селекторы HTML.

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

Как это работает

  1. Настройка источника считывает URL, конечные точки, сведения о базе данных, пути к файлам, выбранные поля и целевые элементы HTML.
  2. Процесс извлечения анализирует содержимое источника и подготавливает необходимые поля.
  3. Система применяет к запуску выбранный формат назначения или целевую базу данных.
  • Поля сайта можно выбирать с помощью селекторов HTML-элементов.
  • Источники-базы данных, API и файлы используют соответствующие сведения о подключении или пути к файлу.
Совет: Первую рабочую версию можно проверить на типичных файлах клиента, прежде чем уточнять остальные правила.
Настройка источников и извлечения

Настройка источников и извлечения

Функции этого экрана
Скрейпинг данных веб-сайта Получение текстовых данных Извлечение данных из HTML

Правила очистки делают записи единообразными

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

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

Как это работает

  1. Процесс очистки нормализует, преобразует, фильтрует, сортирует и объединяет значения полей.
  2. Модуль удаления дубликатов обнаруживает группы дубликатов и подготавливает объединенные записи.
  3. Модуль валидации проверяет записи по схемам, шаблонам, спискам полей или ожидаемым форматам.
  • Статус валидации отображается для каждой записи или поля.
  • Пропущенные записи и ошибки обработки остаются видимыми в рабочей области.
Рабочая область очистки и валидации

Рабочая область очистки и валидации

Функции этого экрана
Извлечение данных с помощью Python Удаление дубликатов данных Валидация данных в реальном времени Валидация извлеченных полей Журналирование пропущенных записей

Очищенные записи попадают в нужное место назначения

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

сводка обработки и журнал запуска показывают количество обработанных, пропущенных и ошибочных записей экспорта.

Как это работает

  1. Модуль экспорта сопоставляет очищенные столбцы с выбранным форматом вывода или схемой назначения.
  2. Система записывает данные в виде записей CSV, Excel, Parquet, JSON, обычного текста, Google Sheets, SQL или базы данных.
  3. Журнал запуска сохраняет сводку обработки, пропущенные элементы и ошибки.
  • SQL-назначения включают записи PostgreSQL, MySQL и SQLite.
  • Назначения-таблицы могут использовать структуры Excel или Google Sheets.
Примечание: Документация, инструкции по настройке, исходный код и сведения о зависимостях помогают команде клиента продолжать управление системой.
Структурированный экспорт и экран назначения

Структурированный экспорт и экран назначения

Функции этого экрана
Организация извлеченных данных Инструмент экспорта в Excel Сохранение данных в SQL-базу Автоматическое обновление базы Excel Добавление новых записей в MySQL

Что предлагает решение

С помощью этого решения компания по обработке данных может:

  • Запускать повторяемые процессы извлечения для регулярных источников
  • Собирать выбранные поля сайтов и извлекать записи из файлов, API и баз данных
  • Очищать, нормализовать, преобразовывать, объединять данные и удалять дубликаты записей
  • Валидировать данные до их поступления в место назначения
  • Экспортировать единообразные записи в файлы, таблицы, SQL-базы или приложения
  • Проверять пропущенные записи, ошибки и сводки обработки

Справились бы с задачей готовые продукты?

До проектирования задачу сравнили с готовыми продуктами на основе их собственных описаний.

Что нужно клиенту ПО для извлечения данных Data Extraction Платформы веб-скрейпинга Oxylabs, Zyte, Scrapfly Платформы интеграции данных Dataddo, Improvado Кастомное решение
Запуск повторяемых процессов извлечения
Экспорт в необходимые форматы данных —
Очистка исходных данных и удаление дубликатов — — —
Предоставление журналов, кода и документации — — —
Соответствие собственным правилам клиента: этапы, роли, отчеты — — —
Все этапы в одном месте — — —
Отсутствие ручных действий между программами частично частично частично

На основе общедоступных описаний продуктов и их категорий.

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

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

Описания продуктов не предлагали полного сочетания собственных правил клиента и подготовки данных от источника до назначения.

Итоговый результат

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

FAQ

Думаете о создании похожей системы? Ознакомьтесь с ответами ниже, чтобы понять, как кастомный процесс извлечения и очистки данных адаптируется к вашим источникам и назначениям.