Как за копейки парсить цены и любые данные на Ozon

ozon

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

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

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

 

Подготовка окружения

Для начала убедитесь, что установлен Python. Затем создайте новый файл в вашем текущем каталоге. Для этого:

Откройте командную строку Windows. Вы можете сделать это, нажав Win + R и введя "cmd", затем нажав Enter. Введите:

touch main.py

Установка зависимостей

В командной строке введите следующий запрос для установки необходимых библиотек:

pip install requests pandas

Импорт библиотек

Создайте новый файл Python и добавьте следующий код для импорта библиотек:

import requests
import pandas as pd

Подготовка учетных данных API и прокси

Получите учетные данные API от Proxys.io и убедитесь, что у вас есть арендованные серверные прокси. В командной строке введите:

USERNAME = "ВАШ_ЛОГИН"
PASSWORD = "ВАШ_ПАРОЛЬ"

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

Получение цен на самые продаваемые товары

Начнем с получения цен на самые продаваемые товары в определенной категории:

def get_best_seller_results(category_id):
    payload = {
        "source": "ozone_bestsellers",
        "query": category_id,
        "start_page": 1,
        "parse": True,
    }
    response = requests.post(
        "https://realtime.proxys.io/v1/queries",
        auth=(USERNAME, PASSWORD),
        json=payload,
    )
    response.raise_for_status()
    results = response.json()["results"][0]["content"]["results"]
    return parse_price_results(results)

Эта функция отправляет запрос к API Proxys.io для получения цен на самые продаваемые товары в указанной категории на сайте Ozone. Она использует учетные данные (логин и пароль), чтобы аутентифицироваться при отправке запроса. Полученные данные о ценах обрабатываются и возвращаются в виде списка словарей.

Получение цен из результатов поиска

Далее извлечем цены из результатов поиска на Ozone:

def get_search_results(query):
    payload = {
        "source": "ozone_search",
        "query": query,
        "start_page": 1,
        "parse": True,
    }
    response = requests.post(
        "https://realtime.proxys.io/v1/queries",
        auth=(USERNAME, PASSWORD),
        json=payload,
    )
    response.raise_for_status()
    results = response.json()["results"][0]["content"]["results"]["organic"]
    return parse_price_results(results)

Эта функция отправляет запрос к API Proxys.io для получения цен на товары в результате поискового запроса на сайте Ozone. В запросе указывается источник данных как "ozone_search", передается поисковый запрос, номер страницы поиска (1) и флаг разбора данных (parse). После получения ответа, данные о ценах извлекаются из структуры ответа и передаются функции parse_price_results() для обработки.

Получение цен для других категорий

Получим цены на сделки в определенной категории на Ozone:

def get_deals_results(url):
    payload = {
        "source": "ozone",
        "url": url,
        "parse": True,
    }
    response = requests.post(
        "https://realtime.proxys.io/v1/queries",
        auth=(USERNAME, PASSWORD),
        json=payload,
    )
    response.raise_for_status()
    results = response.json()["results"][0]["content"]["results"]["organic"]
    return parse_price_results(results)

Эта функция отправляет запрос к API Proxys.io для получения цен на товары, представленные в специальных предложениях на сайте Ozone. В запросе указывается источник данных как "ozone", передается URL-адрес страницы с предложениями и флаг разбора данных (parse). После получения ответа, данные о ценах извлекаются из структуры ответа и передаются функции parse_price_results() для обработки.

Сохранение в файл CSV

Наконец, сохраните полученные данные в CSV-файлы:

dog_food_category_id = "ID_КАТЕГОРИИ"

best_seller_results = get_best_seller_results(dog_food_category_id)
best_seller_df = pd.DataFrame(best_seller_results)
best_seller_df.to_csv("best_seller.csv")

search_results = get_search_results("поиск")
search_df = pd.DataFrame(search_results)
search_df.to_csv("search.csv")

deal_url = "ССЫЛКА_НА_СДЕЛКИ_НА_OZONE"

deal_results = get_deals_results(deal_url)
deal_df = pd.DataFrame(deal_results)
deal_df.to_csv("deals.csv")

Здесь мы выполняем парсинг цен на товары из разных источников на сайте Ozone. Давайте рассмотрим каждую часть:

dog_food_category_id = "ID_КАТЕГОРИИ":

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

best_seller_results = get_best_seller_results(dog_food_category_id):

Мы вызываем функцию get_best_seller_results(), передавая ей идентификатор категории товаров для собак. Эта функция отправляет запрос к API Proxys.io для получения цен на самые продаваемые товары в указанной категории.

best_seller_df = pd.DataFrame(best_seller_results):

Полученные результаты обрабатываются и преобразуются в формат DataFrame с использованием библиотеки pandas.

best_seller_df.to_csv("best_seller.csv"):

Преобразованные данные сохраняются в CSV-файл "best_seller.csv".

search_results = get_search_results("поиск"):

Мы вызываем функцию get_search_results(), передавая ей строку поискового запроса. Эта функция отправляет запрос к API Proxys.io для получения цен на товары, соответствующие поисковому запросу на сайте Ozone.

search_df = pd.DataFrame(search_results):

Полученные результаты обрабатываются и преобразуются в формат DataFrame.

search_df.to_csv("search.csv"):

Преобразованные данные сохраняются в CSV-файл "search.csv".

deal_url = "ССЫЛКА_НА_СДЕЛКИ_НА_OZONE":

Мы определяем URL-адрес страницы с предложениями на сайте Ozone.

deal_results = get_deals_results(deal_url):

Мы вызываем функцию get_deals_results(), передавая ей URL-адрес страницы с предложениями. Эта функция отправляет запрос к API Proxys.io для получения цен на товары, представленные в специальных предложениях.

deal_df = pd.DataFrame(deal_results):

Полученные результаты обрабатываются и преобразуются в формат DataFrame.

deal_df.to_csv("deals.csv"):

Преобразованные данные сохраняются в CSV-файл "deals.csv".

Результат

Когда сохраняем данные в CSV-файл "deals.csv", то получаем таблицу с информацией о ценах на товары, представленные в специальных предложениях на сайте Ozone. Этот файл можно открыть с помощью любого текстового редактора или программы для работы с таблицами, например, Microsoft Excel или Google Sheets.

Примерно, в таблице "deals.csv" мы увидим следующие столбцы:

price (цена): Цена товара в указанной валюте.
title (название): Название товара.
currency (валюта): Валюта, в которой указана цена.

Теперь, когда вы знаете, как парсить цены в Ozone, вы можете начать экономить время и деньги, используя этот метод для вашего шопинга. Мы же всегда поможет с арендой прокси для парсинга.