Парсим товары с ozon на Javascript

Парсинг товаров

Парсинг товаров с сайта Ozon с использованием JavaScript позволяет автоматизировать сбор данных о продуктах, их ценах, описаниях и многом другом. В этой статье мы рассмотрим, как использовать JavaScript для парсинга данных с сайта Ozon. Мы будем использовать Node.js и библиотеки для парсинга веб-страниц.

Что такое парсинг?

Парсинг веб-страниц – это процесс извлечения данных из HTML-кода страницы. Этот процесс часто используется для сбора информации с веб-сайтов, автоматизации задач и анализа данных.

Начало работы

Установка необходимых инструментов

Для парсинга нам потребуются Node.js и несколько библиотек. Убедитесь, что Node.js установлен на вашем компьютере, а затем установите необходимые библиотеки.

  1. Установите Node.js с официального сайта nodejs.org.
  2. Создайте новый проект и установите библиотеки Axios и Cheerio:
mkdir ozon-parser
cd ozon-parser
npm init -y
npm install axios cheerio

Парсинг товаров с Ozon

  1. Импорт необходимых модулей

Создайте файл index.js и импортируйте Axios и Cheerio:

const axios = require('axios');
const cheerio = require('cheerio');
  1. Отправка запроса на сайт Ozon

Используйте Axios для отправки HTTP-запроса на страницу с товарами:

const url = 'https://www.ozon.ru/category/noutbuki-15691/';

axios.get(url)
    .then(response => {
        const html = response.data;
        const $ = cheerio.load(html);

        // Парсинг данных
        const products = [];
        
        $('.a0c4 a2o2').each((index, element) => {
            const title = $(element).find('.a3a3').text();
            const price = $(element).find('.a0c6').text();
            
            products.push({ title, price });
        });

        console.log(products);
    })
    .catch(error => {
        console.error('Error fetching the page:', error);
    });
  1. Обработка данных

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

Полный код

Вот полный код для парсинга товаров с Ozon:

const axios = require('axios');
const cheerio = require('cheerio');

const url = 'https://www.ozon.ru/category/noutbuki-15691/';

axios.get(url)
    .then(response => {
        const html = response.data;
        const $ = cheerio.load(html);

        const products = [];

        $('.a0c4 a2o2').each((index, element) => {
            const title = $(element).find('.a3a3').text();
            const price = $(element).find('.a0c6').text();

            products.push({ title, price });
        });

        console.log(products);
    })
    .catch(error => {
        console.error('Error fetching the page:', error);
    });

Обработка большого количества данных

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

Пример парсинга нескольких страниц

const axios = require('axios');
const cheerio = require('cheerio');

const baseUrl = 'https://www.ozon.ru/category/noutbuki-15691/';
const totalPages = 5; // Количество страниц для парсинга

const fetchData = async (page) => {
    const url = `${baseUrl}?page=${page}`;
    try {
        const response = await axios.get(url);
        return cheerio.load(response.data);
    } catch (error) {
        console.error('Error fetching the page:', error);
    }
};

const parseProducts = async () => {
    const products = [];
    for (let page = 1; page <= totalPages; page++) {
        const $ = await fetchData(page);
        $('.a0c4 a2o2').each((index, element) => {
            const title = $(element).find('.a3a3').text();
            const price = $(element).find('.a0c6').text();
            products.push({ title, price });
        });
    }
    console.log(products);
};

parseProducts();
Tasty Coffee

Консультация

Оставьте заявку на консультацию

Отправляя заявку, вы соглашаетесь с политикой конфиденциальности

О проекте

Расскажите о проекте, чтобы я мог подготовить предварительное предложение

Отправляя заявку, вы соглашаетесь с политикой конфиденциальности

Заявка на тариф

Оставьте заявку на выбранный тариф и я свижусь с вами в ближайшее время

Отправляя заявку, вы соглашаетесь с политикой конфиденциальности