Каждый продукт на Amazon имеет скрытый первичный ключ: его ASIN. Для мониторинга цен, исследования каталога или конкурентного анализа ASIN является той рукояткой, вокруг которой строится всё остальное, поскольку он указывает ровно на одну страницу продукта независимо от того, как меняется название или URL объявления. Сложность состоит не в самом ASIN, а в том, чтобы публичные страницы продуктов Amazon вообще загружались при обращении к ним в масштабе.

Это руководство показывает, как парсить данные ASIN Amazon на Python надёжным способом. Мы разбираем, что такое ASIN и как его найти, а затем создаём небольшой скрапер, который получает публичные данные продукта по ASIN и маршрутизирует каждый запрос через Crawlbase Smart AI Proxy, чтобы страницы возвращались отрисованными, а не заблокированными. Руководство намеренно ограничено публичными данными продукта, а правовой раздел в конце стоит прочитать, прежде чем применять это к реальным объёмам.

Что такое Amazon ASIN?

ASIN, сокращение от Amazon Standard Identification Number, это уникальный 10-символьный буквенно-цифровой код, который Amazon присваивает каждому продукту в своём каталоге. Это идентификатор, используемый платформой внутренне для различения одного объявления от другого, и для большинства продуктов он начинается с B0. Книги являются распространённым исключением: их ASIN обычно совпадает с ISBN-10.

ASIN важен для скрапинга, поскольку он стабилен. Название продукта может редактироваться, его URL может содержать параметры отслеживания, а позиция в поиске может меняться каждый час, но ASIN остаётся фиксированным на протяжении всего срока существования объявления. Это делает его правильным ключом для привязки набора данных: соберите ASIN один раз, и вы сможете повторно получать текущую цену, наличие и рейтинг каждого продукта по расписанию, не открывая объявление заново каждый раз.

Как найти ASIN

Есть два простых способа получить ASIN продукта. Первый, через URL. Откройте любую страницу продукта и посмотрите на путь: ASIN находится сразу после сегмента /dp/.

text
https://www.amazon.com/dp/B0B7CH8DMR
                            ^^^^^^^^^^
                            this is the ASIN

Тот же код присутствует и в более длинных URL в SEO-стиле, опять же сразу после /dp/:

text
https://www.amazon.com/OtterBox-COMMUTER-iPhone-Pro-ONLY/dp/B0B7CH8DMR/

Второй способ, тело страницы. Прокрутите до таблицы «Информация о продукте» или «Дополнительная информация» на большинстве объявлений, и ASIN будет указан в отдельной строке. При парсинге отрисованного HTML значение также присутствует во встроенном поле currentAsin, что является надёжным местом для его программного чтения.

ASIN и SKU

Не путайте ASIN с SKU. ASIN, это идентификатор каталога Amazon, одинаковый для каждого продавца, предлагающего данный продукт. SKU (Stock Keeping Unit), это частный код, который продавец присваивает для отслеживания собственных запасов; он может отличаться от одного продавца к другому и от других каналов продаж. Для межлистингового анализа ключ, это ASIN, а не SKU.

Почему обычный запрос к Amazon не работает

Если направить простой HTTP-клиент на страницу продукта Amazon, вы редко получите ожидаемую страницу. Amazon агрессивно защищается от автоматизированного трафика: IP-адреса датацентров и паттерны запросов, которые не выглядят как настоящий браузер, получают CAPTCHA, страницу-заглушку "Sorry, something went wrong" или прямую блокировку ещё до того, как вы достигнете полей продукта, причём блокировки наступают быстрее по мере увеличения количества запросов с одного IP.

Поэтому рабочий скрапер Amazon требует двух вещей в каждом запросе: IP-адреса, который платформа воспринимает как настоящего посетителя, и обработки запросов, которая позволяет преодолеть CAPTCHA и проверки ботов. Можно собрать это самостоятельно, используя пул ротируемых резидентных прокси и собственную антиблокировочную логику, но поддержание этого стека в рабочем состоянии занимает большую часть работы. Smart AI Proxy объединяет всё это в один эндпоинт: направьте свой обычный HTTP-клиент на него как прокси, и он маршрутизирует запрос через Crawling API Crawlbase за доверенным IP-адресом, возвращая отрисованную страницу.

Зачем нужен Smart AI Proxy

Smart AI Proxy, это готовый к использованию прокси-эндпоинт, работающий поверх Crawling API. Всё, что умеет отправлять трафик через HTTP-прокси (curl, Python requests, headless-браузер), может использовать его без SDK. За эндпоинтом вы получаете ротируемые резидентные IP-адреса, обработку CAPTCHA и обход блокировок, поэтому тот же код, который не работает при прямых обращениях к Amazon, начинает возвращать реальные страницы.

Первый запрос с curl

Создайте бесплатный аккаунт Crawlbase и откройте раздел Smart AI Proxy на панели управления, где в деталях подключения указан ваш токен доступа. Этот токен, единственный необходимый вам учётный данные: прокси аутентифицируется только по имени пользователя, поэтому пароль остаётся пустым. Прежде чем писать Python, убедитесь, что это работает, с помощью однострочной команды curl, которая отправляет запрос страницы продукта через Smart AI Proxy и выводит отрисованный HTML.

bash
curl -x "http://[email protected]:8012" -k \
  "https://www.amazon.com/dp/B0B7CH8DMR"

Два флага обеспечивают работу запроса. -x устанавливает прокси в формате http://TOKEN@host:port; замените YOUR_TOKEN на ваш токен доступа. Флаг -k (длинная форма --insecure) позволяет curl устанавливать соединение без проверки TLS-сертификата прокси, что необходимо, поскольку Smart AI Proxy завершает соединение для обработки переадресации и обхода блокировок до того, как запрос достигнет Amazon. Отправка запросов к Smart AI Proxy без -k завершится ошибкой, поэтому это обязательно. При успешном выполнении вы получите HTML с содержимым продукта, а не страницу с CAPTCHA.

Парсинг данных ASIN Amazon с помощью Python

curl подтверждает работоспособность пути; Python превращает это в нечто, что можно автоматизировать. Вам нужен Python 3.8 или выше, и стандартной библиотеки requests достаточно, поскольку Smart AI Proxy подключается как обычный HTTP-прокси без специального SDK.

bash
python --version

python -m venv amazon_env
source amazon_env/bin/activate

pip install requests

В Windows активируйте окружение командой amazon_env\Scripts\activate вместо строки source. Теперь создайте amazon_asin_scraper.py. Скрипт формирует URL прокси из вашего токена, отправляет запрос через него и выводит статус и тело. Обратите внимание на verify=False: это эквивалент флага -k в curl для Python, и он необходим для Smart AI Proxy.

python
import os
import requests

token = os.environ["CRAWLBASE_TOKEN"]
proxy = f"http://{token}@smartproxy.crawlbase.com:8012"
proxies = {"http": proxy, "https": proxy}

asin = "B0B7CH8DMR"
url = f"https://www.amazon.com/dp/{asin}"

response = requests.get(url, proxies=proxies, verify=False)

print("Status:", response.status_code)
print(response.text[:500])

Сначала установите ваш токен командой export CRAWLBASE_TOKEN=your_token_here, затем запустите python amazon_asin_scraper.py. Статус 200 и открытие HTML продукта означают, что страница вернулась отрисованной. После этого можно передать HTML парсеру, например BeautifulSoup, и извлечь название, цену и поле currentAsin, но есть более чистый вариант, который вовсе обходит парсинг.

Crawlbase Amazon Scraper

Amazon быстро блокирует обычные запросы. Smart AI Proxy, это готовый к использованию прокси-эндпоинт: направьте на него curl, Python requests или любой HTTP-клиент, и ваш трафик будет маршрутизироваться через ротируемые резидентные IP-адреса со встроенной обработкой CAPTCHA и блокировок, поэтому страницы продуктов возвращаются отрисованными, а не заблокированными. Начните на бесплатном тарифе с публичной страницы продукта.

Получение структурированного JSON с помощью autoparse

Ручной парсинг HTML Amazon ненадёжен: разметка плотная и селекторы дрейфуют. Поскольку Smart AI Proxy работает поверх Crawling API, можно передавать параметры Crawling API в виде заголовка запроса и позволить Crawlbase выполнить парсинг. Отправьте autoparse=true в заголовке с именем CrawlbaseAPI-Parameters, и прокси вернёт структурированный JSON для продукта вместо исходного HTML.

python
import os
import json
import requests

token = os.environ["CRAWLBASE_TOKEN"]
proxy = f"http://{token}@smartproxy.crawlbase.com:8012"
proxies = {"http": proxy, "https": proxy}

headers = {"CrawlbaseAPI-Parameters": "autoparse=true"}

asin = "B0B7CH8DMR"
url = f"https://www.amazon.com/dp/{asin}"

response = requests.get(url, proxies=proxies, headers=headers, verify=False)
data = json.loads(response.text)

print("Status:", response.status_code)
print(json.dumps(data, indent=4))

Запустите скрипт, и ответ будет содержать структурированные поля, а не стену HTML: название, цену, наличие, рейтинг, сам ASIN и многое другое, готовое для хранения без написания ни одного селектора. Сокращённый образец выглядит следующим образом:

json
{
  "name": "OtterBox Commuter Series Case for iPhone 14 Pro Max",
  "asin": "B0B7CH8DMR",
  "price": "$32.99",
  "availability": "In Stock",
  "rating": "4.6 out of 5 stars",
  "reviewsCount": 2841
}

Таргетинг на конкретную страну

Цены и наличие на Amazon варьируются в зависимости от региона, поэтому задание по исследованию цен часто требует результатов в том виде, в каком их видит покупатель в конкретной стране. Передайте параметр country с двухбуквенным кодом в том же заголовке CrawlbaseAPI-Parameters, и запрос будет маршрутизирован из этого региона. Совместите его с autoparse, разделив параметры амперсандом.

python
headers = {
    "CrawlbaseAPI-Parameters": "autoparse=true&country=GB"
}

response = requests.get(url, proxies=proxies, headers=headers, verify=False)

С параметром country=GB страница возвращается в том виде, в каком её видит посетитель из Великобритании, вплоть до местоположения «Доставить в». Замените на любой действительный двухбуквенный код, US, DE, JP, чтобы получить региональные цены для одного и того же ASIN.

Масштабирование на множество ASIN

Один продукт, это демонстрация; реальная задача охватывает список ASIN. Схема остаётся той же: перебирайте коды, запрашивайте каждый через Smart AI Proxy с autoparse и собирайте строки. Соблюдайте темп цикла, чтобы не перегружать Amazon; ротация IP-адресов прокси не допускает превышения лимита скорости для отдельного адреса.

python
import os
import json
import time
import requests

token = os.environ["CRAWLBASE_TOKEN"]
proxy = f"http://{token}@smartproxy.crawlbase.com:8012"
proxies = {"http": proxy, "https": proxy}
headers = {"CrawlbaseAPI-Parameters": "autoparse=true"}

asins = ["B0B7CH8DMR", "B09V3HN1KC", "B0BDHWDR12"]
results = []

for asin in asins:
    url = f"https://www.amazon.com/dp/{asin}"
    try:
        r = requests.get(url, proxies=proxies, headers=headers, verify=False)
        results.append(json.loads(r.text))
    except (requests.RequestException, json.JSONDecodeError) as err:
        print(f"Skipped {asin}: {err}")
    time.sleep(2)

with open("amazon_products.json", "w") as f:
    json.dump(results, f, indent=2)

print(f"Saved {len(results)} products")

Это записывает аккуратный amazon_products.json, который можно загрузить в таблицу, базу данных или модель ценообразования. Замените жёстко закодированный список на ASIN, прочитанные из файла, и вы получите повторяемую задачу каталогизации. Для более широкого рассмотрения обхода блокировок на любом сайте см. как парсить сайты, не получая блокировку.

Альтернатива: Scraper API

Smart AI Proxy с autoparse является гибким вариантом, поскольку работает как прокси для любого клиента и любого сайта. Если Amazon является вашей основной целью и вы предпочитаете вызывать простой REST-эндпоинт, а не настраивать прокси, Crawling API является специализированной альтернативой. Он возвращает предварительно разобранный JSON для поддерживаемых сайтов, таких как Amazon, по страницам продуктов, поиска и других типов без настройки прокси. Компромисс заключается в охвате: Smart AI Proxy обрабатывает любой URL через привычный прокси-интерфейс, тогда как Scraper API даёт наиболее чистый вывод для конкретных поддерживаемых сайтов. Для конвейера с интенсивным использованием Amazon сравните оба варианта применительно к вашей рабочей нагрузке.

Законно ли парсить Amazon?

Парсинг публичных данных Amazon находится в правовой серой зоне, и допустимость конкретного проекта зависит от условий использования Amazon, вашей юрисдикции и того, что вы делаете с данными. Условия использования Amazon ограничивают автоматизированный доступ, поэтому парсинг может противоречить этим условиям независимо от осторожности ваших инструментов. Ни один из кодов здесь не изменяет этого; он только обеспечивает работу технической части. Прочитайте Условия использования Amazon и его robots.txt прежде чем начинать, и относитесь к ожиданиям по частоте запросов там как к минимуму, а не как к рекомендации.

Несколько правил, которых стоит придерживаться. Собирайте только публичные данные продукта: названия, цены, наличие, рейтинги и количество отзывов, которые любой желающий может видеть без учётной записи. Соблюдайте robots.txt и поддерживайте объём запросов достаточно низким, чтобы не создавать нагрузку на серверы. Для коммерческого переиспользования запрашивайте разрешение или официальное соглашение об данных, а не предполагайте, что молчание означает согласие. И никогда не собирайте персональные данные, включая всё, связанное с индивидуальными аккаунтами клиентов.

Это руководство намеренно ограничено публичными страницами продуктов, поскольку именно это делает работу оправданной. Оно не охватывает ничего за логином, данных аккаунтов или заказов, панелей управления продавцов или отзывов, привязанных к идентифицируемым людям, и не обходит аутентификацию какого-либо рода. Если ваш проект требует большего, чем публичные данные продукта, правильным решением является официальный API Amazon или соглашение об данных, а не более хитрый скрапер.

Итоги

Ключевые выводы

  • ASIN является ключом. Это стабильный 10-символьный код (обычно начинается с B0), находящийся после /dp/ в любом URL продукта, поэтому привяжите свой набор данных к нему, а не к названиям или URL.
  • Обычные запросы блокируются. Amazon быстро бросает вызов IP-адресам датацентров и трафику, похожему на ботов, поэтому каждый запрос требует доверенного IP-адреса и обработки CAPTCHA.
  • Smart AI Proxy является готовым решением. Направьте на него любой HTTP-клиент как прокси, и ваш трафик будет маршрутизироваться через ротируемые резидентные IP-адреса со встроенным обходом блокировок; не забудьте -k в curl и verify=False в Python.
  • autoparse обходит парсинг. Отправьте autoparse=true в заголовке CrawlbaseAPI-Parameters, чтобы получить структурированный JSON, и добавьте country=XX для региональных цен.
  • Scraper API является нативным вариантом для Amazon. Для задачи с интенсивным использованием Amazon он возвращает предварительно разобранный JSON из простого REST-вызова без настройки прокси.
  • Оставайтесь в рамках публичных данных. Соблюдайте ToS и robots.txt Amazon, соблюдайте темп запросов и никогда не трогайте аккаунты, персональные данные или что-либо за логином.

Часто задаваемые вопросы

Что такое Amazon ASIN?

ASIN (Amazon Standard Identification Number), это уникальный 10-символьный буквенно-цифровой код, который Amazon присваивает каждому продукту в своём каталоге. Это внутренний идентификатор платформы для объявления, и для большинства продуктов он начинается с B0; книги являются обычным исключением, где ASIN совпадает с ISBN-10. Поскольку код остаётся фиксированным на протяжении всего срока существования объявления, он является правильным ключом для привязки собранного набора данных.

Как найти ASIN продукта?

Самый быстрый способ, через URL: ASIN появляется сразу после сегмента /dp/, например B0B7CH8DMR в amazon.com/dp/B0B7CH8DMR. Он также отображается в таблице «Информация о продукте» на большинстве объявлений, и при парсинге страницы он присутствует во встроенном поле currentAsin, доступном для программного чтения.

Почему мои запросы к Amazon блокируются?

Amazon активно защищается от автоматизированного трафика. IP-адреса датацентров и паттерны запросов, которые не выглядят как настоящий браузер, получают CAPTCHA, страницу-заглушку или прямую блокировку, причём блокировки наступают быстрее по мере увеличения числа запросов с одного IP. Для получения реальных страниц необходим доверенный IP-адрес и обработка запросов, преодолевающая проверки, что именно и обеспечивает маршрутизация через Smart AI Proxy.

В чём разница между ASIN и SKU?

ASIN, это идентификатор каталога Amazon, одинаковый для каждого продавца, предлагающего данный продукт. SKU (Stock Keeping Unit), это частный код, который продавец присваивает для отслеживания собственных запасов; он может отличаться от одного продавца к другому и используется в других каналах продаж. Для анализа, сравнивающего один продукт у разных продавцов, ключом является ASIN, а не SKU.

Что лучше использовать для Amazon: Smart AI Proxy или Scraper API?

Оба варианта работают. Smart AI Proxy является готовым прокси-эндпоинтом, подходящим для любого HTTP-клиента и любого сайта, и с параметром autoparse=true возвращает структурированный JSON для продуктов Amazon. Scraper API специально создан для поддерживаемых сайтов, таких как Amazon, и возвращает предварительно разобранный JSON из простого REST-вызова без настройки прокси. Для конвейера с интенсивным использованием Amazon сравните оба варианта применительно к вашей рабочей нагрузке; Scraper API часто даёт наиболее чистый вывод для этой конкретной цели.

Законно ли парсить Amazon?

Это зависит от условий использования Amazon, вашей юрисдикции и вашей цели, а условия использования Amazon ограничивают автоматизированный доступ. Строго ограничивайтесь публичными данными продукта (названиями, ценами, наличием и рейтингами), соблюдайте robots.txt и ожидания по частоте запросов там, и никогда не трогайте аккаунты, персональные данные или что-либо за логином. Для коммерческого переиспользования получайте разрешение или официальное соглашение об данных, а не полагайтесь на скрапер.

Начать создавать

Обходите любой сайт в масштабе, без борьбы с инфраструктурой.

Crawlbase берёт на себя прокси, отпечатки и CAPTCHA, чтобы ваша команда выпускала конвейеры данных вместо поддержки обвязки краулинга. 1 000 запросов бесплатно, без карты.

Самообслуживание · Звонок отдела продаж не требуется · Доступны корпоративные объёмы краулинга