Парсинг страниц с XPath в BAS
Модуль «XPath» в Browser Automation Studio — быстро извлекать элементы и текст из HTML и XML, костяк большинства парсеров и скраперов на BAS.
Когда боту нужно вытащить данные из страницы, инструмент выбора в BAS — XPath. Это один из самых используемых модулей во всём продукте, потому что парсинг — сердце очень многих ботов, а XPath — самый быстрый способ его делать.
Что такое XPath
XPath — это язык запросов к HTML и XML страницам. Вы пишете выражение, указывающее на нужную часть документа, и XPath её возвращает. Он создан для парсинга: вместо рытья в сыром HTML вы адресуете элементы напрямую и вытаскиваете их содержимое.
Действия
- XPath получить html — вернуть HTML найденного элемента.
- XPath получить каждый html — вернуть HTML всех совпавших элементов, для перебора набора.
- XPath получить текст — вернуть текстовое содержимое найденного элемента.
- XPath получить каждый текст — вернуть текст всех совпадений, идеально для списка строк.
- XPath получить атрибут — прочитать атрибут вроде
hrefилиsrc. - XPath проверить существование — проверить наличие совпадения, чтобы ветвиться при отсутствующем поле.
Конкретный пример
Сборка парсера объявлений — скрапера в стиле Avito — классический случай. Вы открываете объявления в браузере, затем для каждой карточки товара модулем XPath вытаскиваете характеристики, описание и фото. «XPath получить каждый текст» проходит по карточкам, «XPath получить атрибут» забирает URL картинок, а «XPath проверить существование» держит поток живым, когда у карточки нет поля.
XPath в инструментарии парсинга
XPath — для отрисованного HTML/XML, страницы такой, как её видит браузер. Он естественно сочетается с остальным инструментарием данных: находите и кликайте элементы селекторами, парсите ответы API через JSON, очищайте извлечённый текст операциями со строками. Но для большинства задач скрапинга именно в XPath происходит реальное извлечение — освойте его, и парсинг перестанет быть сложной частью.
Вопросы и ответы
Для чего нужен XPath в BAS?
XPath — это язык запросов к HTML и XML страницам. В BAS это один из самых используемых модулей для парсинга — быстро извлекать элементы и их текст со страницы, например заголовок, описание и фото карточки товара на доске объявлений.
Как собрать парсер в стиле Avito в BAS?
Откройте объявления в браузере, затем модулем «XPath» вытащите каждое поле карточки — заголовок, описание, цену, фото. «XPath получить текст» и «XPath получить html» возвращают данные; «XPath проверить существование» страхует от отсутствующих полей.
Ещё по теме
- Browser Automation Studio: полный практический гидГид
- Создаём первого бота в Browser Automation StudioПошаговый разбор создания первого рабочего бота в BAS — от пустого проекта до процесса, который ходит по страницам, извлекает данные и работает в несколько потоков.
- Настройка прокси в Browser Automation StudioКак правильно настроить прокси в BAS — типы прокси, привязка по потокам, ротация и проверки, которые не дают мультиаккаунт-ботам попасть под бан.
- Поиск элементов в BAS: селекторы, которые не ломаютсяКак работает поиск элементов в Browser Automation Studio — CSS против XPath, почему записанные селекторы ломаются и как писать селекторы, переживающие изменения страницы.