SEOFAQ Telegram, маркетинг и SEO Канал SEOFAQT в мессенджере Telegram

Все чатыВ 21-й версии Screaming Frog появилась расширенная поддержка...

 204  


В 21-й версии Screaming Frog появилась расширенная поддержка XPath, перешедшая с версии 1.0 на версии 2.0, 3.0 и 3.1.

Несколько примеров XPath-запросов:

1. string-join()

Объединяет несколько элементов контента, соответствующих вашему XPath-запросу, разделяя их указанным разделителем

— Синтаксис: string-join([Целевой XPath],"[разделитель]")

— Пример: Извлечение всего текста из тегов <p>, разделенного пробелами:

string-join(//p," ")

2. distinct-values()

Удаляет дубликаты из результатов экстракции, возвращая только уникальные значения

— Синтаксис: distinct-values([Целевой XPath])

— Пример 1: Получить список всех уникальных CSS-классов на странице:

distinct-values(//@class)

— Пример 2: Комбинация с count() для выявления страниц с раздутым HTML:

count(distinct-values(//@class))

3. starts-with()

Фильтрует результаты, включая те, которые начинаются с определенного символа или строки

— Синтаксис: starts-with([Целевой XPath] 'искомая строка')]

— Пример: Извлечение всех относительных УРЛов для аудита внутренней перелинковки:

//a[starts-with(@href, '/')]/@href

4. ends-with()

Работает как starts-with, но ищет строку в конце атрибута

— Синтаксис: ends-with([Целевой XPath] 'искомая строка')]

— Пример: Поиск всех ссылок на PDF-документы:

//a[ends-with(@href, '.pdf')]/@href

5. matches()

Позволяет комбинировать XPath с регулярными выражениями для ускорения кастомной экстракции

— Синтаксис: matches([Целевой XPath], '[правило regex]')]

— Пример 1: Извлечение ссылок на изображения:

//a[matches(@href, '\.(jpg|png|gif)$')]/@href

— Пример 2: Определение ссылок с UTM-метками:

//a[matches(@href, 'utm_')]/@href

6. exists()

Проверяет наличие определенного HTML-элемента на странице

— Синтаксис: exists([Целевой XPath])

— Пример: Определение отсутствия важных HTML-сниппетов:

exists(//meta[@name='description'])

7. format-dateTime()

Форматирует даты публикации для удобной организации

— Синтаксис: format-dateTime([Целевой XPath], '[Y0001]-[M01]-[D01]')

— Пример 1: Организация дат в формате ГГГГ-ММ-ДД:

format-dateTime(//time/@datetime, '[Y0001]-[M01]-[D01]')

— Пример 2: Получение дат из Open graph данных:

format-dateTime(//meta[@property="article:published_time"]/@content, '[Y0001]-[M01]-[D01]')

8. if()

Возвращает значение XPath только при выполнении определенных условий

— Синтаксис: if([условный XPath]) then [Целевой XPath] else ''

— Пример 1: Проверка канонических УРЛов страниц с тегами noindex:

if(contains(//meta[@name='robots']/@content, 'noindex')) then //link[@rel='canonical']/@href else 'Не ноиндексировано'

— Пример 2: Определение тонкого контента по количеству тегов <p>:

if(count(//p) < 4) then string-join(//p, ' ') else ''

9. tokenize()

Разбивает извлеченное значение по разделителю, аналогично SPLIT() в Google Sheets

— Синтаксис: [Целевой XPath] ! tokenize(., '[разделитель]')

— Пример: Проверка канонических УРЛов страниц с тегами noindex:

//a[contains(@href,"http")]/@href ! tokenize(., '/')

10. Извлечение всех Open graph тегов в одну ячейку:

string-join(//meta[starts-with(@property, 'og:')]/concat(@property, " - ", @content), codepoints-to-string(10))

Это комбинация функций string-join(), starts-with(), и concat() для извлечения всех мета-тегов, где "property" начинается с "og:" и форматирования их со значениями контента.

https://www.screamingfrog.co.uk/advanced-xpath-screaming-frog/

@MikeBlazerX

Ссылки из поста:
https://t.me/MikeBlazerX

Источник новости https://t.me/mikeblazerx/4417...