Ультимативное руководство по сбору данных с Amazon в 2026 году
Кратко
Страницы продуктов Amazon содержат больше полей, подлежащих извлечению, чем просто цена — заголовок, цена, звездный рейтинг, количество отзывов, ASIN, изображения, наличие и продавец Buy Box присутствуют в HTML страницы, вход в систему не требуется.
Файлы robots.txt и Условия использования Amazon ограничивают автоматизированный доступ, и инструменты извлечения данных этой сессии были отклонены, когда пытались напрямую загрузить URL amazon.com — рассматривайте любые проекты по извлечению данных как требующие проверки на соответствие, а не только технической.
Официальный API рекламы продуктов Amazon (PA-API 5.0) устарел. Запросы теперь возвращают HTTP 403, сообщая вызывающим перейти на новый API для создателей, который требует активной регистрации в программе Amazon Associates и как минимум 10 квалифицированных продаж за последние 30 дней — планка, которую большинство неаффилированных команд не может преодолеть.
Этот разрыв именно поэтому управляемый API для краулинга является практичным средним путем между сейчас заблокированным официальным API и созданием собственного антипотребительского стека с нуля — Nstproxy Crawl обрабатывает рендеринг JavaScript и проксирование, так что код ниже должен только обрабатывать парсинг.
Одна страница продукта и страница результатов поиска используют разные шаблоны селекторов. Страницы продуктов определяются по идентификаторам, таким как #productTitle; страницы результатов поиска определяются по атрибуту data-asin на каждом блоке [data-component-type="s-search-result"].
Тот же скрипт может стать трекером цен с примерно десятью дополнительными строками кода — Бонусный совет ниже превращает разовый запрос в запланированный цикл, и Nstproxy Proxy Manager является естественным следующим шагом, как только этот цикл работает по десяткам SKU или рынков одновременно.
Какие Данные Вы Можете Реально Извлечь Из Amazon
Страницы продуктов и результатов поиска Amazon показывают заголовок продукта, текущую цену, звездный рейтинг, количество отзывов, ASIN, URL основного изображения, статус наличия/в наличии и — на странице продукта — продавца, который в данный момент выигрывает Buy Box, все внутри HTML, который отображается без входа в систему. Отзывы покупателей содержат дополнительные поля (текст отзыва, звездный рейтинг, флажок "подтвержденная покупка"), а также имя рецензента, что считается личными данными и заслуживает такого же минимального подхода, как и любой другой личный идентификатор, собранный с публичной страницы.
Попробуйте Nstproxy - Начните бесплатный тест сегодня
Команды обычно извлекают эти данные по одной из четырех причин: мониторинг конкурентоспособных цен по каталогу, исследование рынка по категориям и настроениям отзывов, проверки соблюдения MAP (минимальная рекламируемая цена) для собственных списков бренда и исследование лидов или ассортимента перед выходом на новый рынок. Все четыре варианта являются вариациями одной и той же основной задачи — получить страницу, извлечь стабильный набор полей, повторить по расписанию — что является шаблоном, который строит этот учебник.
Быстрый Обзор
Amazon отображает цены и наличие с помощью JavaScript и блокирует большинство непроксиованных IP в пределах нескольких запросов — Nstproxy Crawl обрабатывает рендеринг браузера и проксирование в одном вызове API, поэтому код ниже должен только разобрать страницу, которую он получает в ответ.
Законность зависит от того, что собирается и как, а не от того, возможно ли вообще извлечение данных из Amazon. Файл robots.txt Amazon запрещает автоматизированный краулинг большинства путей — исследовательские инструменты этой статьи были отклонены, когда пытались напрямую извлечь URL amazon.com, что является полезной иллюстрацией того, насколько широко это ограничение применяется — и Условия использования Amazon отдельно запрещают инструменты для добычи данных без разрешения. Ни один из этих фактов сам по себе не решает юридический вопрос: в деле hiQ Labs против LinkedIn Девятый окружной суд установил, что извлечение общедоступных данных профилей, вероятно, не нарушает Закон о компьютерном мошенничестве и злоупотреблениях, а в деле Van Buren против Соединенных Штатов Верховный суд узаконил CFAA до несанкционированного доступа, а не неправильного использования в противном случае доступных данных. Дело Craigslist против 3Taps указывает на другую сторону: продолжение извлечения данных после явного запрета или уведомления о прекращении значительно увеличивает юридическую подверженность.
На практике, менее рискованная практика выглядит как сбор публично доступных списков, цен и доступности с разумной частотой запросов, сосредоточившись на метаданных рынка, а не на личной информации рецензентов, и предпочтение официальному API, когда проект подходит для него. Более рискованная практика включает в себя сбор данных за логином, получение личных или платежных данных, обход CAPTCHA или других явных технических блокировок и продолжение после того, как Amazon уже ограничил или заблокировал источник. Этот учебник остаётся в первой категории: публично доступные каталоги данных, без обхода аутентификации и без рекомендаций по преодолению вызовов CAPTCHA.
Официальный API против самодельного скрейпера против управляемого API для обхода
Три пути ведут к одним и тем же данным о продукте, и выбор в основном сводится к соответствию критериям и тому, сколько инфраструктуры против ботов команда хочет иметь. Собственный API рекламирования продуктов Amazon (PA-API 5.0) был источником с наименьшим риском в течение многих лет, но Amazon его устарел — вызов к старой конечной точке теперь возвращает HTTP 403, инструктируя разработчиков перейти на новый API для создателей, который требует активной регистрации в программе Amazon Associates и как минимум 10 квалифицирующих продаж за последние 30 дней. Этот барьер по соответствию исключает большинство команд, занимающихся мониторингом цен, маркетинговыми исследованиями или соблюдением MAP, которые уже не ведут активный аффилированный магазин. Полностью самодельный скрейпер (requests или Playwright плюс BeautifulSoup) — это второй путь, но это означает построение и поддержку рендеринга JavaScript, ротации прокси и логики повторных попыток внутри компании до того, как будет написана хотя бы одна строчка кода извлечения, и Amazon часто меняет разметку, что увеличивает затраты на обслуживание. Nstproxy Crawl — это третий путь, и остальная часть этого учебника основана на нём.
Nstproxy Crawl — это API, который превращает URL в Markdown, очищенный HTML или сырые данные страницы через один запрос, с рендерингом JavaScript в настоящем браузере и собственным пулом прокси Nstproxy, обрабатывающим сетевой уровень снизу — две части, которые самодельный Amazon скрейпер иначе должен собрать сам. Это подходит для этой задачи, потому что страницы продуктов и поиска Amazon зависят от рендеринга на стороне клиента для цен и доступности, и потому что скрейпер, обращающийся к Amazon с одного статического IP, получает ограничения по частоте или блокируется в пределах небольшого количества запросов. API взимает плату за каждую успешную выборку, а не за каждую попытку, так что страница, которая возвращает 403 или 404, всё равно считается оплачиваемой (сама попытка успехом), но повторная попытка, которая вообще не достигает Amazon, не считается.
Включён рендеринг JavaScript — страницы продуктов и поиска, которые зависят от клиентских скриптов для цен и статуса запасов, полностью отображаются, прежде чем API вернёт результат, вместо того чтобы возвращать полу загруженную оболочку.
Автоматически обрабатывается маршрутизация прокси — запросы проходят через жилой или датацентр без отдельного поставщика прокси или сценария ротации IP для поддержки.
Вывод в Markdown или HTML — учебник ниже анализирует возвращённый HTML напрямую, но вывод Markdown работает так же хорошо для команд, передающих результаты в систему суммирования на основе LLM, а не фиксированному парсеру.
Предварительные требования
Перед написанием какого-либо кода получите API-ключ на панели Nstproxy и установите используемые в этом учебнике пакеты Python:
pip install requests beautifulsoup4
requests вызывает API Nstproxy Crawl; beautifulsoup4 анализирует HTML, который возвращается. Вам не нужна учётная запись Amazon, логин или установка браузера — Nstproxy Crawl запускает браузерную часть.
Шаг 1: Сбор данных с одной страницы продукта Amazon
Отправьте URL продукта в конечную точку скрейпера Nstproxy Crawl, запрашивая как markdown, так и html вывод. Добавление ?async=true делает вызов синхронным — он ждёт, пока страница не будет полностью загружена, и сразу возвращает результат, вместо того чтобы возвращать идентификатор задачи для опроса:
Проверка result["success"] здесь имеет значение — HTTP 200 подтверждает только то, что Nstproxy Crawl получил запрос, а не то, что Amazon вернул страницу товара, подходящую для использования. onlyMainContent установлен в False, потому что цена и виджеты Buy Box на странице товара Amazon находятся вне того, что универсальная эвристика "основного содержимого" могла бы удерживать.
Шаг 2: Парсинг заголовка, цены, рейтинга и ASIN
Страница товара Amazon связывает свои основные поля со стабильными идентификаторами элементов, а не с созданными именами классов CSS, что делает их целями для целенаправленного выбора, а не для сканирования видимого текста:
from bs4 import BeautifulSoup
import re
soup = BeautifulSoup(page_html,"lxml")title_el = soup.select_one("#productTitle")title = title_el.get_text(strip=True)if title_el elseNoneprice_el = soup.select_one("#corePrice_feature_div span.a-offscreen")price = price_el.get_text(strip=True)if price_el elseNonerating_el = soup.select_one("#acrPopover")rating = rating_el.get("title","").replace(" из 5 звезд","")if rating_el elseNoneasin_match = re.search(r"/dp/([A-Z0-9]{10})", page_html)# ASIN находится в каноническом URL, а не в специальном элементеasin = asin_match.group(1)if asin_match elseNoneproduct ={"asin": asin,"title": title,"price": price,"rating": rating}print(product)
Каждый вызов select_one защищен запасным значением None, а не позволяет отсутствующему элементу вызывать исключение — Amazon использует различные макеты страниц для A/B-тестирования, поэтому селектор, который подходит для большинства списков, иногда может не срабатывать. Строя каждое поле защитным образом, как обычно используют BeautifulSoup и lxml для парсинга HTML, позволяет одной отсутствующей виджету не сломать весь пакетный процесс.
Шаг 3: Сканирование страницы результатов поиска Amazon для нескольких ASIN
Страница результатов поиска возвращает много товаров одним запросом, что более эффективно, чем сканирование страниц продуктов по одному, когда цель состоит в получении снимка категории, а не в детализированном описании одного товара. Запрос к Nstproxy Crawl выглядит так же, как и на Шаге 1, просто указывает на URL поиска:
Каждая карточка результата содержит свой ASIN в атрибуте data-asin, который является гораздо более стабильным якорем, чем любой визуальный макет — фильтрация карточек без data-asin также тихо исключает спонсируемые размещения и виджеты макета, которые не являются настоящими результатами продукта.
Пример схемы вывода
Будь то источник с одной страница товара или страницы результатов поиска, нормализация к одной и той же схеме упрощает дальнейшее хранение и сопоставление:
Хранение scraped_at вместе с остальной записью делает возможным следующий раздел — без временной метки нет способа узнать, изменилась ли цена или сканирование просто проводилось в другой момент.
Бонусный совет: превратите это в постоянно работающий трекер цен
Одно сканирование отвечает на вопрос "сколько это стоит сейчас"; запланированный цикл отвечает на вопрос "изменилось ли это" — что является более полезным вопросом для соблюдения MAP или конкурентного мониторинга. Оборачивая запрос Шага 1 в планировщик и сравнивая с последней сохраненной ценой, можно это реализовать с небольшим добавлением:
try:withopen(PRICE_HISTORY_FILE)as f: history = json.load(f)except FileNotFoundError: history ={}if history.get(asin)!= current_price:print(f"Изменение цены для {asin}: {history.get(asin)} -> {current_price}") history[asin]= current_price
withopen(PRICE_HISTORY_FILE,"w")as f: json.dump(history, f)schedule.every(6).hours.do(check_price, asin="B0BSHF7WHW", url=PRODUCT_URL)whileTrue: schedule.run_pending() time.sleep(60)
Замените print на вызов вебхука Slack или электронной почты, и это превратится в настоящую систему оповещения, а не просто в консольный лог. Когда этот цикл будет работать с десятками ASIN среди множества торговых площадок или региональных доменов, а не только с одним, операционный узкое место обычно смещается от логики разбора к управлению прокси и учетными данными — это тот момент, когда имеет смысл централизовать правила маршрутизации, распределение ресурсов по проектам и мониторинг через Nstproxy Proxy Manager, добавив это поверх логики скрейпинга, а не самостоятельно назначая прокси для каждого скрипта.
Наблюдения и пределы
Цены на Amazon меняются достаточно часто, что любой список селекторов, включая вышеуказанные, следует рассматривать как актуальные на сегодня, а не постоянные — защитные проверки None на каждом поле предотвращают крах пакетной задачи из-за изменения макета, а не просто возвращают одну неполную запись. Ограничения по скорости реальны даже при обработке прокси: распределение запросов и умеренная конкуренция снижают шансы на превышение порогов обнаружения ботов Amazon, и ни один прокси-уровень не делает неограниченный, высококонкурентный обход Amazon хорошей идеей. Данные отзывов содержат имена рецензентов, которые являются личными данными, даже если они явно видны — минимизируйте то, что хранится, и как долго, если отзывы являются частью скрейпа. Наконец, ни один из вышеуказанных кодов не работает с страницами, которые требуют решения CAPTCHA или входа в систему; оба являются явными сигналами остановиться, а не проблемами, которые нужно обойти.
Заключение
Скрейпинг данных о продуктах Amazon меньше связан с поиском умных обходов и больше с выбором правильного слоя для решения проблем рендеринга на JavaScript и репутации IP, которые статический вызов requests.get() не может решить самостоятельно. Поскольку официальный API для рекламы продуктов Amazon теперь заблокирован за требованием Associates плюс объем продаж, которое большинство команд не могут выполнить, управляемый API для обхода, который обрабатывает рендеринг и маршрутизацию прокси — в сочетании с теми же защитными паттернами разбора, показанными выше — является практическим средним уровнем между слишком ограниченным официальным API и самостоятельно поддерживаемым стеком против ботов.
В: Законно ли скрейпить данные о продуктах Amazon?
Скрейпинг публично видимых данных о списках (цена, название, рейтинг) несет меньший юридический риск, чем скрейпинг за входом или продолжение после явного блокирования, основываясь на прецедентном праве, таком как hiQ Labs против LinkedIn и Craigslist против 3Taps, но собственный robots.txt и Правила использования Amazon ограничивают автоматический доступ — изучение обоих перед началом проекта имеет большее значение, чем любой отдельный технический трюк.
В: Могу ли я использовать официальный API Amazon вместо скрейпинга?
Официальный API для рекламы продуктов Amazon (PA-API 5.0) устарел и теперь возвращает HTTP 403, направляя вызывающих к API для создателей, который требует активную регистрацию в Amazon Associates плюс как минимум 10 квалифицирующих продаж за последние 30 дней — барьер, который исключает большинство команд, занимающихся мониторингом цен или исследованием рынка, а не работающих в качестве аффилированного магазина.
В: Почему статический вызов requests.get() не работает на страницах продуктов Amazon?
Виджеты цен и доступности на страницах продуктов Amazon зависят от клиентского JavaScript для завершения рендеринга, поэтому обычный HTTP-клиент без рендерера, поддерживающего JavaScript, часто получает неполную страницу или блокируется полностью после нескольких запросов от одного и того же IP.
В: Как я могу найти ASIN продукта, не открывая страницу?
На странице результатов поиска каждый блок результата содержит свой ASIN непосредственно в атрибуте data-asin ([data-component-type="s-search-result"]), что исключает необходимость открывать каждую страницу продукта только для сбора его идентификатора.
В: Нужен ли мне прокси для скрейпинга Amazon на каком-либо реальном масштабе?
Да, для всего, кроме нескольких ручных запросов — Amazon ограничивает скорость и блокирует на основе репутации IP и паттернов запросов, поэтому один статический IP быстро деградирует, в то время как ротационный пул жилых или датацентров сохраняет работу мониторинга без постоянного ручного разблокирования.
В: Что делать, если я попал на CAPTCHA?
Остановитесь и отойдите, вместо того чтобы пытаться решить или обойти ее — CAPTCHA является явным сигналом от Amazon о том, что текущий паттерн запросов выглядит автоматизированным, и продолжение в любом случае попадает в категорию более высокого риска, описанную выше.
В: Могу ли я собирать отзывы клиентов Amazon?
Текст отзыва и звездные рейтинги видны на странице так же, как цена и название, но отзывы также включают имя рецензента, которое является персональными данными — стоит заранее решить, что и на какой срок минимизировать, а также с какой целью, прежде чем собирать данные обзора, а не после.
Что такое новостные APIs? Лучшие новостные APIs в 2026 году
Что такое новостное API, и какое из них будет лучшим в 2026 году? Ранжированное, проверенное на доказательствах сравнение NewsAPI.org, GNews, NewsData.io, Mediastack, открытой платформы Guardian, NYT API, GDELT и WorldNewsAPI — плюс то, как многофункциональное API для обхода, такое как Nstproxy Crawl, заполняет пробелы, которые не охватывает ни одно из них.
Ivy Lin
Aug. 17th 2026
110M+ реальных IP с 99.9% успешных доступов
Средний отклик ~0.5с для задач высокой конкуренции
Всего от $0.1/GB
Мгновенный доступ к премиальным residential, datacenter, IPv6 и ISP пулам.