Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Документация по проекту "Product Scraper"

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

Product Scraper — это Node.js-скрипт, предназначенный для автоматического сбора (скрапинга) информации о товарах с веб-страниц. Он использует библиотеку Puppeteer для управления браузером в фоновом режиме, переходит по списку заданных URL-адресов, извлекает подробные данные о каждом товаре и сохраняет результаты в XLSX-файл (Excel).

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

Основные возможности

  • Сбор данных с нескольких страниц: Скрипт обрабатывает список URL-адресов из текстового файла.
  • Извлечение подробной информации: Собирает SEO-данные, название, артикул, цену, описание, изображения и все характеристики товара.
  • Взаимодействие со страницей: Может нажимать на кнопки "Подробнее" или "Развернуть", чтобы загрузить полный контент перед сбором данных.
  • Экспорт в Excel: Все собранные данные автоматически сохраняются в удобном формате .xlsx.
  • Гибкая конфигурация: Ключевые параметры, такие как пути к файлам и режим работы, вынесены в отдельный конфигурационный файл.
  • Модульная структура: Логика сбора данных в браузере (parser.js) отделена от основной логики управления (script.js).

Структура проекта

Проект состоит из нескольких ключевых файлов, каждый из которых выполняет свою роль:

script.js

  • Назначение: Основной файл, который запускает и координирует весь процесс скрапинга.
  • Функции:
    • Запускает и управляет браузером (Puppeteer).
    • Читает список ссылок из links.txt.
    • Последовательно открывает каждую страницу.
    • Внедряет и выполняет код из parser.js на странице.
    • Собирает результаты и вызывает функцию для сохранения их в Excel.

parser.js

  • Назначение: "Сердце" скрапера. Этот скрипт выполняется непосредственно в контексте браузера на странице товара.
  • Функции:
    • Находит и извлекает все необходимые данные (заголовок, цену, характеристики и т.д.) из HTML-кода страницы с помощью DOM-селекторов.
    • Возвращает собранные данные в виде единого объекта JSON.
    • Важно: Этот файл нужно адаптировать, если вы хотите собирать данные с другого сайта, так как HTML-структура и CSS-классы будут отличаться.

config.js

  • Назначение: Файл для быстрой и удобной настройки скрипта без изменения основного кода.
  • Параметры:
    • OUTPUT_FILE_PATH: Имя итогового Excel-файла.
    • PARSER_FILE_PATH: Путь к файлу-парсеру.
    • LINKS_FILE_PATH: Путь к файлу со списком ссылок.
    • IS_CONTENT_COMPLETE: Флаг, указывающий, нужно ли кликать на кнопку для загрузки полного описания товара.

links.txt

  • Назначение: Простой текстовый файл, где каждая строка — это URL-адрес страницы товара для скрапинга.

package.json и package-lock.json

  • Назначение: Стандартные файлы Node.js для управления зависимостями проекта и его метаданными.

🛠️ Установка и запуск

Предварительные требования

Для работы проекта на вашем компьютере должны быть установлены:

  • Node.js (рекомендуется версия 18 или выше).
  • Менеджер пакетов npm (устанавливается вместе с Node.js).

Шаги по установке

  1. Клонируйте репозиторий или скачайте файлы проекта в одну папку.

  2. Откройте терминал в папке проекта.

  3. Установите зависимости, выполнив команду:

    npm install
    

    Эта команда скачает и установит все необходимые библиотеки (puppeteer, xlsx и др.), указанные в package.json.

Использование

  1. Настройте config.js: Убедитесь, что пути к файлам указаны верно. При необходимости измените флаг IS_CONTENT_COMPLETE.

  2. Заполните links.txt: Добавьте в файл URL-адреса страниц товаров, которые вы хотите обработать. Каждый URL должен быть на новой строке.

  3. Запустите скрапер: Введите в терминале следующую команду:

    node script.js --scrape
    
  4. Дождитесь выполнения: Скрипт начнет свою работу. Вы будете видеть в консоли лог его действий: запуск браузера, переход по страницам, сбор данных.

  5. Получите результат: После завершения работы в папке проекта появится файл products.xlsx (или с другим именем, указанным в конфиге) с собранными данными.

Кастомизация (Адаптация под другой сайт)

Если вы хотите использовать этот скрапер для другого сайта, вам потребуется изменить только один файлparser.js.

Алгоритм действий:

  1. Откройте страницу товара на целевом сайте в вашем браузере.
  2. Откройте Инструменты разработчика (обычно клавишей F12).
  3. Найдите элементы, содержащие нужные вам данные (название, цена, описание и т.д.).
  4. Определите их уникальные CSS-селекторы (классы, ID или другие атрибуты).
  5. Откройте parser.js и замените существующие селекторы (например, .productTitle--J2W7I или .priceBlockFinalPrice--iToZR) на новые, которые вы нашли на шаге 4.
  6. Сохраните изменения и запустите скрипт. Возможно, потребуется несколько попыток, чтобы подобрать правильные селекторы.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages