Парсинг по CSS селекторам

Когда вам требуется спарсить что-то нестандартное, что не входит в правила парсинга Q-Parser, вы можете воспользоваться парсингом по произвольным CSS селекторам.

Данный функционал требует минимум базовых знаний CSS и умений составлять корректные CSS селекторы. Некорректные селекторы могут привести к ошибкам и/или не будут работать.

Как добавить CSS селектор

На странице начала парсинга выберите вкладку CSS селекторы и нажмите кнопку Добавить

Парсинг по CSS селекторам - Форма добавления CSS селектора

В появившейся форме необходимо указать:

  • Название характеристики в которую будет записано значение
  • Тип характеристики
  • CSS селектор для выборки элемента
  • Название атрибута (при парсинге атрибутов)

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

Указывается название характеристики в которую будет записано значение.

Если такая характеристика уже есть у товаров в парсинге, она будет перезаписана.

Поле: Тип характеристики

Возможны следующие значения:

  • Строка — текстовое значение первого элемента по селектору
  • HTML — html содержимое первого элемента по селектору
  • Атрибут — текстовое значение атрибута первого элемента по селектору. Имя атрибута указывается отдельно
  • Список строк — текстовые значения всех элементов по селектору
  • Список атрибутов — текстовые значения атрибутов всех элементов по селектору. Имя атрибута указывается отдельно
  • Таблица — набор характеристик. Для каждой строки по селектору элемента отдельно читаются название и значение
  • Таблица (список) — то же, что таблица, но значение характеристики — список текстов внутри строки

Например, для парсинга единственного значения нужно выбрать Строка, для парсинга списка размеров — Список строк. Если нужные вам значения содержатся в атрибутах html элемента — соответствующий вариант парсинга атрибутов.

Поле: CSS селектор

Для типов Таблица и Таблица (список) вместо одного селектора указываются три:

  • Селектор элемента — строка таблицы или другой повторяющийся блок
  • Селектор ключа — название характеристики внутри этой строки
  • Селектор значения — значение характеристики внутри этой строки

Название характеристики в этом случае не задаётся: оно берётся из селектора ключа. Если такая характеристика уже есть у товара, она не перезаписывается. Пустые строки пропускаются. У типа Таблица также пропускается строка, где название совпадает со значением.

Для остальных типов это CSS селектор, который будет использован для выборки элементов на детальной странице товара.

Поддерживаются все стандартные CSS3 селекторы, а также выборка по текстовому содержимому :contains() и :icontains()

Пример: .detail > .info:nth-child(2) .char_name:contains("Бренд") + .value

Поле: Название атрибута

При выборке значений атрибутов здесь указывается название атрибута для получения значения.

Проверка CSS селекторов

Если требуется проверить CSS селектор, вы можете запустить пробный парсинг и посмотреть результат.

Более продвинутый способ: перейти на страницу товара, открыть консоль разработчика и выполнить выборку, например, через document.querySelectorAll('.css_selector')

Известные и возможные ограничения

Выборка элементов производится на детальной странице товара без каких-либо преобразований и без исполнения JavaScript.

Некоторые сайты не имеют никакой полезной информации в html коде страниц товаров, в этом случае парсинг по произвольным селекторам может не работать или работать неверно.

Мы не гарантируем корректную работу парсинга по пользовательским CSS селекторам на всех сайтах в силу особенностей технического исполнения и работы сторонних ресурсов.

Связанные материалы

Навигация по базе знаний