· 8 мин. чтения

Как парсить поисковую выдачу Amazon в CSV: цены, рейтинги, отзывы и ASIN

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

От поискового запроса к готовому CSV

В этом руководстве настроим задачу на одном поисковом запросе, проверим CSV и сохраним конфигурацию для повторных запусков. Затем разберём реальную выборку из 275 листингов Amazon.

Что на входеЧто на выходе
Поисковый запрос, например wireless headphonesОдна строка CSV для каждой найденной карточки товара
Страна Amazon в интерфейсе или домен в APIЦены и валюта для выбранного сайта и геолокации
Глубина сбора в pagecountДанные с указанного количества страниц
Готовый шаблон tools.CSVlineCSV без сломанных колонок из-за запятых и кавычек

Какие данные Amazon можно сохранить в CSV

Встроенный парсер Shop::AmazonShop::Amazon принимает обычный поисковый запрос и извлекает данные из карточек товаров в выдаче Amazon.

Для первой выгрузки достаточно восьми полей товара:

КолонкаПоле Shop::AmazonСодержимое
ASINitem.asinУникальный 10-символьный идентификатор товара Amazon
Названиеitem.titleНазвание из карточки в поисковой выдаче
Ссылкаitem.linkURL страницы товара
Текущая ценаitem.priceЦена в выдаче; может быть пустой при See options
Старая ценаitem.oldpriceЗачёркнутая справочная цена, если она показана Amazon
Валютаitem.currencyСимвол валюты, например $
Рейтингitem.ratingОценка покупателей по шкале от 1 до 5
Отзывыitem.commentscountЧисло отзывов в формате Amazon: 535, 2.8K, 225.6K

Парсер также возвращает дополнительные данные: item.boughtCount — отображаемое число покупок за месяц, item.additionalinfo — бейджи Best Seller и Amazon’s Choice, item.sellerscount — число продавцов, item.imagelink — ссылку на изображение.


Как настроить парсер Amazon в A-Parser

Что понадобится

  • A-Parser Pro или Enterprise;
  • один или несколько поисковых запросов;
  • для регулярного сбора рекомендуем A-Parser Premium-прокси нужной страны; начать можно с пробного тарифа.

Шаг 1. Выберите Shop::Amazon

Откройте Редактор заданий (Task Editor) и выберите Shop::AmazonShop::Amazon из списка парсеров.

Шаг 2. Добавьте поисковые запросы

В поле Запросы (Queries) введите запросы так же, как в строке поиска Amazon:

wireless headphones
gaming mouse
mechanical keyboard

Для первой проверки достаточно 1–5 запросов. Также доступны размножение запросов и буквенные подстановки вроде {az:a:z}, но масштабный сбор лучше настраивать после проверки базовой задачи.

Шаг 3. Укажите домен и глубину сбора

В интерфейсе NextGen в поле Amazon domain выберите страну, например United States. При запуске через API укажите соответствующий домен Amazon.

  • domain — домен нужного сайта при запуске через API: www.amazon.com, www.amazon.de, www.amazon.co.uk;
  • pagecount — количество страниц. Для теста укажите 1, затем увеличьте значение до 3–5.

В интерфейсе страну выбирают из списка. Через API передавайте полный домен, например www.amazon.com: строка germany не преобразуется в домен автоматически.

Шаг 4. Настройте прокси и геолокацию

Один или несколько тестовых запросов можно выполнить с текущего IP. Для стабильных цен в долларах на amazon.com используйте выходной IP-адрес США.

Если прокси задан в формате user:pass@host:port, включите в Проксичекере опцию Use proxy authorization. Иначе сервер может вернуть ошибку 407 Proxy Authentication Required.

Шаг 5. Сохраните результаты в CSV

Писать шаблон самостоятельно не нужно. В NextGen шаблон CSV указывается в поле Result format (Формат результата), а заголовок таблицы уже включён в готовый пресет в конце статьи. В классическом интерфейсе для заголовка используется поле Initial text (Начальный текст).

Заголовки таблицы

В готовом пресете заголовок хранится в параметре resultsPrepend и уже содержит эту строку:

Keyword,ASIN,Product Title,Current Price,Old Price,Currency,Rating,Reviews,Product URL

После Product URL нужен перевод строки, иначе первая строка товара склеится с заголовком. Он уже добавлен в пресет. При ручной настройке классического интерфейса нажмите Enter после заголовка.

Строки с товарами

В поле Result format вставьте:

[% FOREACH item IN p1.products;
    # Если ASIN отсутствует в отдельном поле, извлекаем его из ссылки
    asin = item.asin ? item.asin : item.link.match('/(?:dp|gp/product)/([A-Z0-9]{10})').0;

    tools.CSVline(
        query,
        asin,
        item.title,
        item.price,
        item.oldprice,
        item.currency,
        item.rating,
        item.commentscount,
        item.link
    );
END %]

Здесь p1 — короткое имя выбранного парсера, а p1.products — список найденных товаров. Если в задании используется один Shop::AmazonShop::Amazon, менять p1 не нужно.

Зачем нужен tools.CSVline: названия Amazon могут содержать запятые, кавычки и переносы строк. В тестовой выборке запятая встретилась в 199 из 275 названий. Функция автоматически экранирует такие значения, чтобы название не разбивалось на несколько колонок.

Имя файла и запуск

Выберите сохранение результатов в файл и укажите:

results/amazon-$datefile.format().csv

К имени файла добавляется временная метка, поэтому новая выгрузка не перезапишет предыдущую.

Если CSV будете открывать в Excel, включите Write BOM в настройках результатов. В готовом пресете эта опция уже включена.

Нажмите Добавить задание (Add Task). После появления статуса Completed скачайте CSV из очереди заданий.


Как проверить CSV перед большим запуском

Проверьте первые 20 строк, прежде чем увеличивать число запросов и страниц:

  • цены записаны десятичными числами, например 29.99;
  • пустые цены соответствуют карточкам с See options;
  • рейтинг записан числом, например 4.5;
  • отзывы сохраняют формат Amazon: 535, 2.8K, 225.6K;
  • ASIN содержит 10 буквенно-цифровых символов;
  • количество колонок одинаково во всех строках;
  • названия с & при необходимости декодируются перед анализом.

Важно: пустая цена не всегда означает ошибку. У карточки может быть несколько цветов, размеров или комплектаций, и Amazon покажет стоимость только после выбора варианта.


Реальный тест: 275 листингов Amazon при глубине до 30 страниц

Одна страница позволяет проверить формат CSV, но не показывает, как задача работает на более глубокой выдаче. Поэтому для той же конфигурации задали глубину до 30 страниц и отдельно проверили цены, рейтинги, отзывы, повторы ASIN и пустые значения. Amazon сообщил No more pages после 20-й страницы, поэтому сбор завершился раньше заданного предела.

Как собирали данные

ПараметрЗначение
Маркетплейсwww.amazon.com
Поисковый запросwireless headphones
Заданная глубинаpagecount = 30
Фактически обойдено20 страниц; затем Amazon вернул No more pages
Геолокация и проксиВыходной IP-адрес США через прокси-чекер amazon
Версия A-Parserv1.2.3648; NextGen v0.5.75 (Linux)
Формат результатаCSV, девять колонок, строки через tools.CSVline
Поля анализаasin, price, oldprice, currency, rating, commentscount
Результат выполненияЗадача завершена; один запрос автоматически повторился из-за ошибки выходного прокси 597 Read first line error: EOF

Для расчётов значения были приведены к единому формату. Сокращения количества отзывов преобразовывались в числа: 2.8K → 2 800, 225.6K → 225 600. Пустые значения не включались в расчёт средней цены, рейтинга и количества отзывов, а повторы определялись по ASIN.

Повторный запуск с теми же параметрами может вернуть другой состав товаров: выборка отражает состояние поисковой выдачи Amazon на дату сбора.

Что получили

Набор данных поисковой выдачи Amazon — собран 25 сентября 2026 года.

ПоказательРезультат
Размер выборки275 листингов с 20 фактически обойденных страниц; 271 уникальный ASIN
Фиксированная цена269 из 275 листингов (97,8%); у 6 было See options
Диапазон цен$6.79–$669.29
Медианная / средняя цена$26.99 / $50.67
Распределение цен203 дешевле $50; 38 от $50 до $99.99; 28 от $100
Зачёркнутая ценаПрисутствовала у 159 листингов
Средний рейтинг4,30 из 5 по 274 листингам
Количество отзывовМедиана 2 800; диапазон от 8 до 225 600 по 274 листингам. Значение медианы в CSV записано как 2.8K
Валюта$ во всех 269 строках с ценой

Что показывают результаты

  1. Товары дешевле $50 доминируют в выдаче. В этот диапазон попали 203 из 269 листингов с ценой — 75,5%. Средняя цена ($50.67) выше медианной ($26.99), потому что её поднимают 28 позиций стоимостью от $100.
  2. oldprice — не история продаж. У одного товара текущая цена составляла $23.98, а зачёркнутая — $299.99, то есть разница достигала 92%. Это справочная цена для сравнения, а не доказательство продажи товара по прежней стоимости.
  3. Отзывы нужно преобразовать в числа. Сокращение K использовано в 181 из 274 непустых значений — 66%. Такие строки нельзя напрямую сравнивать как числа. После преобразования 2.8K в 2 800 и других сокращений медиана выборки составила 2 800 отзывов.
  4. Повторы нужно удалять по ASIN. В 275 строках обнаружен 271 уникальный ASIN: четыре товара встретились дважды.

Скачать CSV с 275 листингами Amazon, использованный для расчётов.


Что делать, если результат выглядит неправильно

ПроблемаПричинаРешение
У товара нет ценыAmazon показывает See optionsОставьте поле пустым: это особенность карточки
Ошибка 407 Proxy Authentication RequiredНе переданы данные авторизации проксиВключите Use proxy authorization
На amazon.com другая валютаAmazon учитывает географию IPИспользуйте прокси нужной страны и проверьте несколько строк
Название разбилось на колонкиЗначения не были экранированыИспользуйте tools.CSVline()
Excel открыл строку в одной ячейкеВыбран другой разделительИмпортируйте через Данные → Из текста/CSV и укажите запятую
Заголовок склеился с первой строкойПосле resultsPrepend нет переносаДобавьте перевод строки после Product URL

Когда A-Parser удобнее собственного скрипта

Скрипт на Python подходит, если нужна уникальная логика и полный контроль над каждым запросом. Но для регулярного сбора придётся отдельно поддерживать селекторы, прокси, повторы при сетевых ошибках, форматирование результата и расписание запусков.

A-Parser объединяет эти компоненты в одной задаче. Конфигурацию можно сохранить как пресет, запускать с другими запросами и выполнять по расписанию через Планировщик. В Enterprise задачу также можно подключить к собственной системе через HTTP/JSON API.


Частые вопросы о парсинге Amazon в CSV

Можно ли выгрузить товары Amazon без программирования?

Да. Shop::AmazonShop::Amazon — встроенный парсер, поэтому писать собственный парсер страницы не требуется. Нужно выбрать его, указать запросы и скопировать готовый шаблон CSV. Изменять поля вручную потребуется только в том случае, если нужен другой состав колонок.

Нужны ли прокси для парсинга Amazon?

Для небольшого теста можно использовать текущий IP. Для регулярного сбора и стабильной геолокации лучше применять ротируемые прокси нужной страны. География выходного IP влияет на валюту и локализацию результатов Amazon.

Как избежать повторов в CSV?

Используйте ASIN как ключ уникальности. Один товар может встретиться на нескольких страницах или по разным запросам. Для общего каталога удаляйте повторяющиеся ASIN; для анализа позиций сохраняйте уникальной пару запрос + ASIN.


Готовые материалы и следующий шаг

Готовый пресет

В Редакторе заданий в строке Пресет задания (Task preset) нажмите кнопку импорта справа от поля и выберите Импорт пресета (Import preset). Разверните спойлер и вставьте Base64-код в поле импорта.

Показать код пресета для импорта

eJztVd1uIzUUfpWR6WoTNE2TC5A2CK2yoYGF0oT+cEFbrdyZk8TEY8/anmRD
NhftXsIt74EKFdUWyis4b8SxPU3SdJ8AkUiJz4/P73eOZ2QMSjMpSLMRE0P1
SPcUaDCaNE9mJPdn0iQ0oz9JsZ1TpUFtJ3pMYhIIp3hCDocybzZbXgtFpbrX
mxEzzQFtSHSlWAooZynSfakyatBDwQ3yxpQXTu3kSdTpHuy22l9FzEAWvdyP
8kYtVzItEqM/OxURfj6K7K+LC3trb6LWIWrYu8Xl4mLxzv9e2qvFO3u9uIzs
lZfYP+y1vV38Yv+2d/avyP6Df7f2Oo7sjf3TXrmzfW9/w18UXtvf7Z2XRGjr
YvEzit/bm+CXaiaiz31gNX9+vnZuhjNnYlTDzJJh5elO5Xkzzd8O8p0ygepO
5aS1/UN9+9nZrFGfV59Wa3XMKVg3UnJdax9+jyagEnju87oANY1XtPO2Rnqv
hhkOm8xcseQRU/L0g/ykUApEMt3kK2qYGDzSllkGwuhEFsJsCl0JAquKye3u
fxE9OSPzs7OYhHbrju89dnvL99ajbCk8pGM4kg4hjMOK3UFqn2YOIyVnp8TZ
VkoNOOVawFSlWgsQpWnKDKKb8uDQgXUVxLFgrz3khERdV2QGuqNkhiwDb0zJ
nN4He0K2PE3QROHvfhfukGafcg0x0Rh5h2Ig6aYEy4J1lKqbu3iQPyNStDjf
gzHwlZq3/6JgPMXJavXx0svy4odVuo9szJfprbvC0ZsojGFpxVMvut+SplGF
u5TKPTnAxNNzTJuzjBmkddt1F7l1ZI4A8mXJ9l3JMqlg6aU0XDrHLZKDcGP+
DUwnUqWxm9O4F6YgOvJobXvEmajn4djlaXlq3yPxIEDvAMYMJnp5+/hg71Ss
gNHKS1dkozoPuv2QmUjRZ4NuuZLuNQtxhCuwK9oyyzm4comCc+y2hoMVCFu6
7K4jVolvXm57F66k0Kdhx/kB//owhIpDiCD/xAWYYYPWvZYmE8o55roucRe1
kXlX7Cq1gQqPNzJhCjhoHQ2BpvlQCtCnYkAzLGSUSczkVGSQDKlgaD4awfRc
UpUS583AQCK81wrUu38A7nOYny0X//KhmD1c/0iv7X+kfE/6y4kPMxQTnDBF
A+HTwtDwqwOaHCpjcmwYf9UShn2Jsb3KN4NxoQwgCRhtuIrKN1MFpqxEo05K
XnsIyQiwWuRjDxv0qk0KnE5LbHutcyoEpAkHKoocBZ/WnSiVGWXCFXYyqYXE
3PJDyYMH7P+H6z/7cOHcsgxkYTwmAlI9YMrlOcf1+aPuhalwO8HNxHz+L16g
azA=

Для первого запуска оставьте pagecount = 1, замените тестовый запрос на свой и проверьте первые 20 строк CSV. Если цены, валюта и колонки отображаются корректно, увеличьте глубину сбора.

← Все опубликованные руководства по парсингу

Поделиться:
Назад в блог