Как собрать поисковую выдачу eBay с помощью A-Parser

Support Anastasia

Administrator
Команда форума
A-Parser Enterprise

hero2400.webp


Как собрать поисковую выдачу eBay: цены, продажи и ссылки на товары

От поиска eBay — к таблице товаров

Один товар дешевле, у другого показано 318 продаж, у третьего — зачёркнутая цена. В выдаче eBay есть что сравнить. Соберём эти карточки в таблицу, где каждый товар занимает свою строку, а цены, счётчики продаж и ссылки стоят рядом.

В этом руководстве настроим Shop::eBay в A-Parser: на вход подадим поисковые фразы вроде portable blender, на выходе получим CSV для Excel или Google Таблиц. В файл попадут названия, цены, ссылки и другие доступные поля карточек. Старая цена, рейтинг и счётчик продаж тоже сохранятся, если eBay показывает их в выдаче.

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

Что задаём и что получаем

Что задаёмЧто обрабатывает A-ParserЧто получаем в CSV
Поисковая фраза — например, portable blenderПоисковую выдачу eBay по товарамСтроки с названиями, ценами, ссылками и другими атрибутами карточек
Рынок eBay — например, СШАЛокальную версию eBay и её валютуЦены в валюте выбранного рынка: $, £ или €
Настройка выгрузки CSVЗначения с запятыми и кавычками в названияхКорректный CSV для Excel и Google Таблиц, без сдвига колонок

Как работает этот сценарий:
Укажите ключевую фразу — например, portable blender — и A-Parser соберёт карточки из поисковой выдачи eBay. Ссылки на отдельные товары и магазины не используйте: они попадут в поиск как текстовый запрос.



1. Какие данные eBay показывает в поисковой карточке?

В карточках выдачи Shop::eBay собирает 11 полей. Вот что можно сохранить и как использовать в таблице:

В CSV-шаблоне item — это текущая карточка товара. Поэтому её поля записываются как item.title, item.price и item.link.

Поле в A-ParserПоле в CSV-шаблонеЧто содержитДля чего пригодится
Названиеitem.titleНазвание товара в карточкеПосмотреть, какие слова продавцы используют в заголовках
Ссылкаitem.linkURL товара без query-параметровСохранить адрес товара без параметров ссылки
Изображениеitem.imageСсылка на фото товараСопоставить названия товаров с фотографиями
Текущая ценаitem.priceЦена строкой: число, диапазон или текстСравнить цены и разложить найденные товары от дешёвых к дорогим после обработки нечисловых значений
Старая ценаitem.old_priceЗачёркнутая цена, если она показана в карточкеПосмотреть, насколько отличаются текущая и зачёркнутая цены
Валютаitem.currencyСимвол валюты ($, £, €)Проверить валюту перед сравнением цен
Рейтингitem.ratingОценка, показанная в карточкеСравнить оценки у карточек, где они показаны
Отзывыitem.reviews_countЧисло отзывовПосмотреть, сколько отзывов стоит за показанной оценкой
Продажиitem.number_salesСчётчик продаж, если он показан в карточкеСравнить счётчики продаж, которые eBay показывает в выдаче
Метка статусаitem.light_highlightОсновная пометка карточки, например New ListingВыделить объявления с пометкой New Listing
Дополнительная информацияitem.secondary_infoДополнительная пометка карточки; в тесте — Brand New и Open BoxРазделить карточки по дополнительным пометкам — например, Brand New и Open Box

Два нюанса: пустые поля и диапазонные цены

  1. Пустая ячейка — тоже результат: у одной карточки есть зачёркнутая цена и рейтинг, у другой — только название и текущая цена. A-Parser сохраняет доступные поля, а отсутствующие оставляет пустыми. Если счётчик продаж не показан или вместо него стоит sold out, поле number_sales тоже будет пустым. Записывать туда ноль нельзя: пустота не говорит, что продаж не было.
  2. Цена иногда приходит диапазоном: в тестовом CSV диапазоны встретились в 177 из 1 500 строк (11.8%) — примерно в каждой девятой. Например, 16.99 to 17.99 сохраняется одной строкой. Ещё одна карточка вернула текст See price вместо числа. Перед расчётами такие значения нужно разобрать отдельно: какой край диапазона брать и как обрабатывать текст — зависит от вашей задачи.



2. Настраиваем A-Parser для выгрузки eBay в CSV

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




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

  1. Откройте веб-интерфейс A-Parser.
  2. Перейдите в Редактор заданий (Task Editor).
  3. В выпадающем списке парсеров выберите Shop::eBay (по умолчанию парсер получит алиас p1 или будет доступен напрямую).

ru_parser.png




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

В поле Запросы (Queries) введите ключевые слова товаров так же, как вы ввели бы их в строку поиска на сайте eBay:

Код:
portable blender
dog car seat cover
solar garden lights
thermal label printer
vintage film camera

Масштабирование на тысячи запросов:
Для первоначального теста оставьте 1–3 ключевых слова. Когда вы проверите структуру CSV, используйте встроенный макрос перебора: portable blender {az:a:z} — A-Parser автоматически сгенерирует 26 подзапросов от portable blender a до portable blender z, собрав максимум листингов из глубины выдачи.



Шаг 3. Настройте домен, страницы, прокси и число попыток

В блоке настроек парсера Shop::eBay задайте ключевые параметры:

  1. Ebay domain: выберите целевой рынок, например United States (ebay.com), United Kingdom (ebay.co.uk) или Germany (ebay.de).
  2. Pages count: задайте 5 страниц на поисковый запрос.
  3. Items Per Page: выберите 60 товаров на странице.
  4. Прокси: используйте резидентские прокси США для ebay.com.
  5. Request retries (Лимит повторов): для этого примера установите значение 150.

⚡ Зачем нужен лимит Request retries = 150?
Это запас попыток на запрос. В тестовой выгрузке все пять запросов дали по пять страниц. В журнале встречались ответы 403, но сбор завершился успешно. Даже с лимитом 150 итог всё равно стоит проверять по журналу и файлу результатов.



Шаг 4. Настройте формат вывода через tools.CSVline

Чтобы таблица корректно открывалась в Excel и Google Таблицах, используем встроенный хелпер tools.CSVline. Он автоматически берёт в кавычки поля с запятыми и экранирует спецсимволы.

1. Добавьте заголовки колонок (Initial text)

Разверните блок Больше опций (More options) и в поле Начальный текст (Initial text) укажите строку заголовков. В конце строки обязательно добавьте перевод строки:

ru_prepend.png


Код:
Keyword,Product Title,Current Price,Old Price,Currency,Sales Count,Rating,Reviews,Product URL

2. Задайте шаблон результата (Result format)

В поле Формат результата (Result format) вставьте шаблон Template Toolkit:

Код:
[% FOREACH item IN products;
    tools.CSVline(
        query,
        item.title,
        item.price,
        item.old_price,
        item.currency,
        item.number_sales,
        item.rating,
        item.reviews_count,
        item.link
    );
END %]

Если вы используете алиасы парсеров (например, p1), замените products на p1.products, а query на p1.query.



Шаг 5. Сохраните файл и запустите задачу

  1. В блоке Куда сохранять результат выберите В файл.
  2. Укажите имя выходного файла с макросом даты:
    Код:
    results/ebay-search-$datefile.format().csv
  3. Нажмите Добавить задание.
  4. Перейдите в Очередь заданий (Tasks Queue). После завершения задачи нажмите на имя файла, чтобы скачать готовый CSV.

ru_queue.png


Вот четыре строки из тестовой выгрузки. Девятиколоночный шаблон выше проверен на 1 500 строках: Keyword заполнен во всех строках, а названия с запятыми остаются в своей колонке.

Код:
Keyword,Product Title,Current Price,Old Price,Currency,Sales Count,Rating,Reviews,Product URL
"portable blender","TENKER 1000W Smoothie Blender Fruit Juicer Mixer Countertop Blenders Portable",29.99,59.99,$,53,,,https://www.ebay.com/itm/168612307927
"portable blender","Hamilton Beach Personal Blender With Travel Lid #51146V",19.49,,$,,5.0,4,https://www.ebay.com/itm/116077181556
"portable blender","TENKER Personal Blender 900W Shakes Smoothies Vegetable Fruit Countertop Blender",32.99,,$,75,,,https://www.ebay.com/itm/197009518619
"portable blender","Portable Blender Juicer Cup USB Rechargeable Smoothies Mixer Fruit Machine","16.99 to 17.99",,$,131,,,https://www.ebay.com/itm/165878398951



3. Почему для CSV лучше использовать tools.CSVline

Частая ошибка при создании CSV — склеивать значения вручную через запятую:

Код:
[% item.title %],[% item.price %],[% item.link %]

На реальной выдаче eBay этот подход гарантированно приведёт к сбою таблицы:

  1. Запятые в названиях товаров: Листинг Patriot Portable Mini Blender, USB Rechargeable, Juicer, Shakes & Smoothies содержит 3 запятые. При ручной склейке Excel разобьёт одно название на 4 разные колонки, и все последующие данные (цена, ссылка) сдвинутся вправо.
  2. Двойные кавычки и дюймы: Листинг Portable Blender 18000RPM Dual Mode 20Oz Ice Crushing Cup или товары с пометкой размера экрана (15.6") содержат кавычки, ломающие синтаксис CSV.

tools.CSVline делает таблицу монолитной: он автоматически обрамляет ячейки с разделителями в кавычки и добавляет корректный перенос строки.

Откройте готовый CSV в Excel или Google Таблицах. Проверьте пару строк с запятыми в названиях и пустыми полями: название товара должно целиком остаться в своей ячейке, а цены и ссылки — попасть под свои заголовки.



4. Что показала тестовая выгрузка по пяти запросам

Чтобы показать результат настройки, собрали выдачу по пяти поисковым фразам из примера. Использовали рынок США, резидентские прокси США, 5 страниц на запрос и Request retries = 150. В этом запуске eBay вернул по 60 карточек на страницу, поэтому каждый запрос дал по 300 строк.

В CSV — 1 500 строк, 1 312 уникальных ссылок и 1 191 уникальное название. В 188 строках ссылки встретились повторно: один товар может попасть в разные запросы или на разные страницы.

Поисковый запросСтрок в CSVСобранных страницМедиана числовых цен
portable blender3005$24.98
dog car seat cover3005$29.99
solar garden lights3005$18.40
thermal label printer3005$62.96
vintage film camera3005$50.00

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

Что видно на конкретных карточках

Две цены — в соседних колонках

В 391 строке была показана зачёркнутая цена. Например, у TENKER 1000W Smoothie Blender текущая цена — $29.99, зачёркнутая — $59.99. В CSV оба значения стоят рядом: можно сравнить их и выбрать карточки для дальнейшего разбора. Историю изменения цены эта выгрузка не показывает.

Счётчик продаж есть не в каждой строке

В 260 из 1 500 строк заполнен счётчик — от 6 до 10 000 продаж, медиана среди заполненных значений — 101.5. Эти строки можно отсортировать по показанному числу и рассмотреть подробнее. Остальные ячейки оставляем пустыми: отсутствие счётчика не означает, что товар не продавался.



5. Частые вопросы о сборе данных с eBay

Можно ли передать URL страницы товара или категории?

Нет. Shop::eBay работает исключительно с поисковыми фразами. Если передать в поле запросов ссылку на карточку, A-Parser отправит её в поисковую строку eBay (параметр _nkw), и вы получите результаты поиска по тексту этого URL, а не данные конкретного товара.

Почему поля продаж, рейтинга и отзывов иногда пустые?

eBay выводит плашку продаж (например, 154 sold) и рейтинг только тогда, когда у листинга есть достаточная подтверждённая активность. Пустое поле означает отсутствие этого элемента в вёрстке конкретной карточки. Не заменяйте пустые ячейки нулями, чтобы не искажать последующий статистический анализ.

Что делать с ценой-диапазоном?

Такие цены возвращаются для товаров с вариациями. Если вам необходимо проводить строгие математические расчёты, вы можете очистить строку в шаблоне Template Toolkit — например, взять первое число регулярным выражением: item.price.match('^[\d\.]+').0 — либо выгружать сырую строку и обрабатывать её на этапе загрузки в аналитическую базу данных.

Что делать при ошибке 403 Forbidden?

eBay активно фильтрует нецелевой трафик. Убедитесь, что:

  1. Вы используете резидентские прокси США для ebay.com.
  2. В переопределениях парсера выбран чекер с этими прокси.
  3. В журнале видно, были ли повторные попытки и достигнут ли лимит Request retries. В тестовой выгрузке ответы 403 встречались, но все страницы были собраны; результат всё равно стоит проверить после завершения задачи.



6. Пресет для быстрого старта

Чтобы не настраивать парсер вручную, вы можете импортировать готовую конфигурацию. Скопируйте код из спойлера ниже и вставьте его через Редактор заданий → Импорт заданий:

Код:
eJyFVVFv2jAQ/iuW1UqtlLL2oXtgTzQDrVtHGLR7AYRMcgQPx05tB4oQ/31nJ00o
dF0kRO58393583fOjq5BG64kbd8E1DKzMgMNBqyh7fGO5v6dtincse1VOPp91X3J
lbY0oDnTBqEYNqajpcrbbReDCwksWCEwZEftNgcEK6yheQK4yBO0CwO5Vi8ueM1E
gSFWF7D/N8BHh0uIV6AbUF3pf0gNVnMwB8ib2+sPUSyFWBXSNpDbD8K5hczMHKiJ
/3z9AWChdMYscut5qrsan5NeNOx2wm/EpST3fYL9J0VszZeJJPhYpYRp4TkILuGi
9LnnuQC9DRrbwVuWWwHHzlzz+MSpRDJ7dyEutAYZn6SWRTYHPTNMgDle08xymZ54
Yc1hY2ae1uNF3M2qdF3iRrv9r+R8SvfTaUBLjkzPE4YUneU3rUqU9eKIreFROVq5
gMbdQ6vPMkds5fkEc1SxAabj5dVZwiw4RKs8jYvLVmzWCGdJwi1OBBNlVSfxppMn
yZ/9YUmFsY53VFZPqwxdFl5s5dy+djymZ96mmKLw2F8lphR9QA1232PYR3K0gMwg
lUpHuesG3TuqZEeIB1iDQHPBhIGq2l3BRYLT2Fkg6L4Cvh8SneTY15s7LIWS3Wjs
oc7irbvoZ4NK1INK3RzOcdeCZ9yibUI/OO3rgK4A8pqvvuMrUxrqIlXeqjZeOzlI
Nx0/YLtROgkGpfbJo9dx6KVoycDrNBJJ9Ra+SnTkxEh89WBYanBYiq7O9DR8mMiJ
bDTSyaua9IilN2f+1hkrueBpVI30a2QhH/HyjGSoslyAo00WQgTurhs2euyY6pCd
0TBwDA59iYMbDq9mN/nfR2WrOKuo91vXYIYHdVi1ShkzIXC3hysOaKzKI9nV+kgd
XnbU3exsLoDgT+KGJzJRKYmZJjgzlsROExNplEBPynQCkgieLq2ZSLsE1Lsggs1B
4K3FpXWxa/zHa5HgnGWYKENhHkyN58BTiqOYKhwStPbT+ttSf4l2KLY/ZlB6Hcz7
9n8BmqBR4A==



Полезные ссылки

 
Последнее редактирование:
Назад
Верх