Веб-скрапинг · 1 мин чтения

Парсинг Amazon: прокси, заголовки и лимиты запросов

Amazon — один из самых часто парсимых сайтов и один из самых защищённых. Собирать цены, отзывы или каталог в большом объёме означает распределять запросы, отправлять реалистичные заголовки и справляться с CAPTCHA и антибот-страницами, которые Amazon возвращает в ответ. Практичный и честный разбор.

Как Amazon борется со скраперами

Amazon защищает свой каталог несколькими слоями обнаружения: лимиты запросов на IP, страница CAPTCHA «Robot Check» / «Enter the characters you see», страницы ошибок с собаками, отпечатки TLS и заголовков и поведенческие проверки. Если долбить страницы товаров с одного адреса, вы быстро увидите CAPTCHA, затем троттлинг или блокировки. К тому же сайт меняет страницы в зависимости от региона и гоняет A/B-тесты вёрстки, поэтому ваш парсер должен терпеть изменения.

Две честные оговорки перед стартом. Условия Amazon запрещают скрапинг, а для согласованного доступа к данным есть официальные пути — Product Advertising API и Selling Partner API; взвесьте сперва их. И никакая настройка не скрапит Amazon надёжно вечно: цель — устойчивый темп сбора, а не невидимость. О типовых сценариях в электронной коммерции, мониторинге цен и анализе конкурентов, читайте на страницах мониторинг цен и прокси для Amazon.

Схема сбора, которая живёт долго

Выигрышный подход — притворяться множеством обычных покупателей:

  • Крутите пул прокси, чтобы ни один отдельный IP не превышал терпение Amazon. Это главная защита от троттлинга по адресу.
  • Отправляйте полный, реалистичный набор заголовков — User-Agent, Accept, Accept-Language — и держите их согласованными между собой. Голые заголовки по умолчанию из requests выдают вас мгновенно.
  • Держите темп с джиттером — случайные паузы лучше ровных интервалов. Тонкий ровный ручеёк лучше всплесков.
  • Зафиксируйте регион — одна страна выхода, соответствующие Accept-Language и почтовый индекс, чтобы цены и наличие были согласованы; смена региона посреди прогона перемешивает ваши данные.
  • Распознавайте страницу для ботов — ищите маркеры CAPTCHA / Robot Check и уводите этот IP на отдых, вместо того чтобы парсить мусор.
  • Берите headless-браузер только при необходимости — большая часть страницы товара уже есть в исходном HTML; тяжёлую артиллерию оставьте для блоков, которые рисует JS.

Amazon оценивает серверные IP, поэтому агрессивный скрапинг — как раз тот случай, когда резидентские прокси живут дольше. s4m продаёт серверные прокси; выделенный IP даёт стабильный регион для сбора согласованных цен на умеренных объёмах, но насчёт обнаружения серверных адресов на большом объёме стоит быть реалистом.

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

Ходим через прокси s4m с полным набором заголовков и распознаём страницу для ботов от Amazon, чтобы сменить адрес, а не парсить ошибку.

python
import requests

proxies = {
    "http":  "http://USER:[email protected]:3128",
    "https": "http://USER:[email protected]:3128",
}
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
                  "AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/122.0 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language": "en-US,en;q=0.9",
}

r = requests.get("https://www.amazon.com/dp/B0EXAMPLE",
                 headers=headers, proxies=proxies, timeout=20)

if "[email protected]" in r.text or "Robot Check" in r.text:
    raise RuntimeError("Hit Amazon bot page - rotate IP and back off")

parse_product(r.text)   # your parser
Поделиться страницей
FAQ

Ответы на вопросы

Разрешено ли скрапить Amazon?

Условия использования Amazon запрещают скрапинг, а в зависимости от юрисдикции и самих данных возможен и юридический риск. Для согласованного доступа Amazon даёт официальные API (Product Advertising API, Selling Partner API). Сперва рассмотрите их, а для чего-то масштабного посоветуйтесь с юристом.

Почему цены Amazon скачут между запросами?

Amazon локализует цены и наличие по региону и гоняет A/B-тесты. Если ваш пул прокси выходит из разных стран, данные будут несогласованными. Зафиксируйте один регион выхода с соответствующими Accept-Language и почтовым индексом, а держать его стабильным помогает выделенный IP.

Работают ли серверные прокси с Amazon?

Для умеренного, хорошо размеренного сбора — часто да. Amazon оценивает серверные диапазоны, поэтому на больших объёмах CAPTCHA будет попадаться чаще, чем с резидентскими адресами. s4m продаёт серверные прокси; ротация, темп и реалистичные заголовки весят не меньше типа IP, но схемы, защищённой от блокировок, не существует.

Собирайте данные e-commerce чисто

Пустите сбор товаров и цен через аутентифицированные серверные прокси s4m, зафиксируйте регион выделенным IP и держите размеренный темп. Оплата за потраченное, анонимные аккаунты, принимаем криптовалюту.

Эту страницу нашли по запросу

Реальные поисковые фразы, на которые отвечает эта страница — по ссылкам откроются материалы, раскрывающие тему глубже.