Amazon — золотая жила для мониторинга цен и анализа товаров и один из самых агрессивно защищённых сайтов в сети. Скрапьте его с серверного IP — и увидите CAPTCHA, стену «Robot Check», скачущие цены или 503 в пределах горстки запросов. В этом руководстве — что проверяет Amazon, какая стратегия прокси это переживает и какая дисциплина сессий держит цены и данные Buy Box точными.
Серверные прокси на Amazon при любом реальном объёме — тупик; резидентные выходы с чистыми ASN — вот что держит. Не менее важно: сопоставляйте страну выхода с маркетплейсом. Тянуть цены amazon.de через выход в США — получить цены, валюту и Buy Box США, что тихо портит датасет. Одна гео-география выхода на маркетплейс.
Amazon персонализирует по сессии — добавление в корзину, место доставки и ценовые тесты живут в cookie. Если ротировать IP на каждом запросе, вы постоянно сбрасываете контекст и получаете несогласованные цены и победителей Buy Box. Держите sticky-сессию на весь скрап товара, затем ротируйте на границе товара или задачи:
import itertools, time, random
from curl_cffi import requests
PROXIES = ["socks5h://USERNAME:[email protected]:913", "..."]
pool = itertools.cycle(PROXIES)
def scrape_product(asin, proxy):
# Same sticky exit for every page of this product
s = requests.Session(impersonate="chrome",
proxies={"http": proxy, "https": proxy})
detail = s.get(f"https://www.amazon.com/dp/{asin}")
offers = s.get(f"https://www.amazon.com/gp/offer-listing/{asin}")
return detail.text, offers.text
for asin in asins:
proxy = next(pool) # new sticky exit per product
if "Robot Check" in scrape_product(asin, proxy)[0]:
# flagged - back off, rotate, retry on a fresh exit
...
time.sleep(random.uniform(2.0, 5.0))
Как и при скрапинге Google SERP, дисциплина, которая держит вас живым, — скорость на выход, а не размер пула. Рандомизируйте паузы, ограничивайте конкурентность на IP, а увидев «Robot Check» или 503 — перестаньте бить по этому выходу и отступите; повтор в помеченный IP лишь удлиняет блок.
Обычный вызов requests шлёт JA3, метящий вас как автоматизацию ещё до применения оценки IP. Шлите отпечаток браузера через curl_cffi (выше) или настоящий браузер — см. Обход фингерпринтинга TLS с curl_cffi. Если Amazon выбросит JS-CAPTCHA-стену, эскалируйте до настоящего движка браузера.
Новым пользователям — 5U при регистрации, бонус к первому пополнению. Акция ограничена по времени.