← Назад

Забираем данные с любого сайта за 5 минут

Забираем данные с любого сайта за 5 минут
Представьте, что вам нужно срочно выгрузить тысячи товаров из чужого интернет-магазина на маркетплейс. Или каждый день следить за ценами конкурентов, чтобы вовремя снижать свои. Обычно для этого зовут программистов или просят доступ к базе данных сайта. Но что делать, если связи с разработчиками нет, а админка закрыта на замок? Повторять всё руками — безумие, на это уйдут недели. В такой ситуации спасает внешний парсинг. Это специальная программа, которая за пару минут копирует всю открытую информацию с сайта вместо вас. Робот видит на странице ровно то же самое, что и обычный человек в браузере, просто собирает эти данные в удобную табличку(фид) в миллион раз быстрее.
3 главные задачи, которые решает этот скрипт
1. Создание товарного фида для рекламы
Маркетплейсы (Авито, Яндекс.Маркет) и рекламные площадки требуют список товаров в формате XML. Если CMS сайта не умеет генерировать такой файл, парсер соберет данные прямо с витрины и упакует их в нужный формат.
2. Мониторинг и анализ конкурентов
Скрипт позволяет автоматически отслеживать изменение цен, появление новинок или обнуление остатков на сайтах-конкурентах для динамического ценообразования.
3. Миграция данных
При переносе товаров со старого сайта (от которого утеряны доступы) на новую платформу парсер заменяет недели ручного копирования карточек на пару минут работы скрипта.
Как устроен этот процесс изнутри
Скрипт имитирует поведение обычного пользователя, но делает это за доли секунды: [ Скрипт ] ──(Запрос HTML)──> [ Сайт магазина ] │ │ <──(Скачивает страницу целиком)────┘ │ [ Текстовый поиск ] ──> Находит теги товаров (например,
) │ [ Сборка XML ] ──> Формирует валидный файл feed.xml
1. Запрос данных:
Node.js отправляет стандартный GET-запрос к странице каталога и скачивает ее исходный HTML-код в память.
2. Изоляция блоков:
Метод .split('
') режет единый текст страницы на массив отдельных карточек товаров.
3. Фильтрация:
Скрипт заглядывает внутрь каждого кусочка и забирает текст, зажатый между нужными тегами (например, названия внутри

...

).
4. Конвертация:
Полученные строки очищаются и заворачиваются в строгие XML-теги (, ), формируя готовый к загрузке файл.
Пример:
const https = require('https');
const fs = require('fs');

// 1. Скачиваем страницу карточки товара в виде html
https.get('https://нужный нам сайт', (res) => {
  let html = '';
  res.on('data', chunk => html += chunk);
  res.on('end', () => {
    
    // выбираем из кода страницы те теги которые нужны для фида
    const name = html.split('

')[1]?.split('

')[0] || ''; const price = html.split('class="price">')[1]?.split('')[0] || '0'; // Сохраняем фид в виде xml const xml = `${name}${price}`; fs.writeFileSync('feed.xml', xml); }); });
Почему выбран именно такой подход?
• Автономность:
Не нужны пароли от FTP, доступы к API или одобрение со стороны владельцев сайта.
• Максимальная скорость:
Скрипт не тратит ресурсы на загрузку картинок, стилей и выполнение тяжелых скриптов, работая в разы быстрее полноценного браузера.
• Чистый Node.js:
Код работает без сторонних библиотек (npm-пакетов), что позволяет запускать его на любом самом дешевом сервере без долгой настройки окружения.
#парсинг товаров #как перенести товары #как наполнить интернет магазин товарами #анализ цен конкурентов #генераци фидов