Все статьиРуководства12 мин

Как собирать данные о товарах на Amazon с помощью Python

Техническое руководство по скрейпингу Amazon на Python: извлечение цен, отзывов и ASIN, обход CAPTCHA, управление сессиями и настройка прокси-инфраструктуры.

Команда InfraProxy

28 января 2026 г.

#Amazon#Python#e-commerce#парсинг товаров#прокси#scraping

Сложности парсинга крупнейшего маркетплейса

Как правильно парсить товары с Amazon на Python?
Для парсинга Amazon требуются модифицированные HTTP-клиенты (например, httpx с TLS-патчами) или Playwright, так как маркетплейс жестко фильтрует автоматизированные запросы. Необходима реализация ротации User-Agent, управление сессионными Cookie и обязательное использование резидентных прокси с точным геотаргетингом, чтобы обходить CAPTCHA и собирать корректные локализованные цены и ASIN.

Данные с Amazon (цены, отзывы, Buy Box, BSR - Best Sellers Rank) — золотая жила для e-commerce аналитики, арбитражников и продавцов (Amazon FBA). Однако Amazon инвестирует миллионы долларов в инфраструктуру защиты от ботов. Парсинг Amazon "в лоб" с помощью стандартной библиотеки requests приведет к бану IP-адреса и появлению CAPTCHA уже после пятого запроса.

Архитектура Python-скрейпера для Amazon

Для создания стабильного пайплайна сбора данных (например, мониторинга цен по списку ASIN) необходим многоуровневый подход.

1. Обход базовых блокировок (Headers & TLS)

Amazon анализирует TLS-отпечатки (JA3) и структуру HTTP/2 заголовков. Если ваш Python-скрипт отправляет заголовки в порядке, свойственном библиотеке requests, он сразу маркируется как бот.

Для обхода следует использовать curl_cffi или Playwright в stealth-режиме.

Пример безопасного запроса через curl_cffi:

from curl_cffi import requests
from bs4 import BeautifulSoup

def get_amazon_price(asin, proxy_url):
    url = f"https://www.amazon.com/dp/{asin}"
    proxies = {"http": proxy_url, "https": proxy_url}
    
    # Имитация браузера Chrome 120 на Windows
    response = requests.get(
        url, 
        proxies=proxies,
        impersonate="chrome120",
        headers={
            "Accept-Language": "en-US,en;q=0.9",
            # Важно: Accept-Encoding управляется impersonate
        }
    )
    
    if "api-services-support@amazon.com" in response.text:
        print("Попали на CAPTCHA!")
        return None
        
    soup = BeautifulSoup(response.text, 'lxml')
    # Парсинг цены (селекторы Amazon часто меняются)
    price_element = soup.select_one('span.a-price span.a-offscreen')
    return price_element.text if price_element else "Цена не найдена"

2. Извлечение данных (DOM Parsing)

Amazon проводит перманентные A/B-тесты. Классы CSS и структура DOM-дерева меняются в зависимости от геолокации, истории поиска и устройства.

Лучшая практика: Использовать XPATH с резервными путями (Fallbacks). Если цена не найдена в <span id="corePrice_desktop">, скрипт должен искать её в <div id="cerberus-data-metrics"> (скрытые атрибуты).

3. Инфраструктура прокси: Гео и Ротация

Amazon показывает разные цены для пользователей из Калифорнии и Нью-Йорка (из-за налогов и логистики). Для корректного сбора данных о конкурентах в США вам нужны прокси из конкретного штата.

  • Запрет на дата-центры: IP серверов AWS или DigitalOcean блокируются еще на уровне CDN. Требуются исключительно резидентные прокси (читайте гайд Датацентровые vs Резидентные прокси).
  • Управление сессиями: Amazon выдает cookie session-id при первом запросе. Сохранение и передача этой cookie при ротации IP (Sticky Sessions) значительно повышает "траст" вашего бота. Подробнее механику описывает статья про стратегии ротации прокси.

Масштабирование пайплайна

Когда вам нужно проверять не 100, а 100 000 ASIN ежедневно:

  1. Асинхронность: Переход с синхронного кода на asyncio + aiohttp или использование фреймворка Scrapy с Twisted-реактором.
  2. Очереди задач: Использование Celery/RabbitMQ. Если воркер ловит CAPTCHA, задача возвращается в очередь с пометкой retry, а воркер меняет IP-адрес.
  3. Обход CAPTCHA: При получении HTTP 503 или страницы "Type plain characters", скрипт должен немедленно ротировать прокси, а не пытаться решить капчу (это экономически невыгодно при больших объемах).

Для парсинга Amazon в промышленных масштабах необходима безупречная сеть IP-адресов. Подключите резидентные прокси InfraProxy: геотаргетинг уровня ZIP-кодов США, ротация API-методами и гарантия обхода CAPTCHA. Запросите тестовый пул для вашей архитектуры.

Нужны надёжные прокси для вашего проекта?

InfraProxy предоставляет серверные и резидентные прокси для российского бизнеса. Договор, постоплата, техподдержка.