Я люблю использовать Xpath. Поэтому я собрал список элементов, которые вы можете извлечь, используя XPath.

Заголовки

По умолчанию Screaming Frog собирает только h1 и h2, но если вы хотите собрать h3, используйте код XPath:

//h3

Полученные данные:
заголовки h3
Вы можете собрать только первый h3, особенно если их много на странице:

/descendant::h3[1]

Чтобы собрать первые 10 h3 на странице, используйте:

/descendant::h3[position() >= 0 and position() <= 10]

Для подсчета количества тегов h3 на странице:

count(//h3)

В этом случае «Extract Inner HTML» в крайнем правом раскрывающемся меню необходимо изменить на «Function Value», чтобы это выражение работало правильно:
значение функции

Hreflang

Следующий Xpath в сочетании с Extract HTML Element соберет содержимое всех элементов hreflang:

//*[@hreflang]

Этот код будет собирать весь элемент HTML, со ссылкой и значением hreflang:
Hreflang
Возможно, вам нужны только значения hreflang (например, ru-RU), вы можете указать атрибут с помощью @hreflang:

//*[@hreflang]/@hreflang

Извлеченные данные:
значения hreflang

Schema

Вы можете собирать различные типы схем на странице:

//*[@itemtype]/@itemtype

типы различных схем на странице
Для правил «itemprop» вы можете использовать аналогичный XPath:

//*[@itemprop]/@itemprop

Социальные мета-теги (Open Graph Tags & Twitter Cards)

Вы можете извлечь социальные мета-теги, такие как теги Facebook Open Graph, данные учетной записи или Twitter-карты:

//meta[starts-with(@property, 'og:title')]/@content
//meta[starts-with(@property, 'og:description')]/@content
//meta[starts-with(@property, 'og:type')]/@content
//meta[starts-with(@property, 'og:site_name')]/@content
//meta[starts-with(@property, 'og:image')]/@content
//meta[starts-with(@property, 'og:url')]/@content
//meta[starts-with(@property, 'fb:page_id')]/@content
//meta[starts-with(@property, 'fb:admins')]/@content
//meta[starts-with(@property, 'twitter:title')]/@content
//meta[starts-with(@property, 'twitter:description')]/@content
//meta[starts-with(@property, 'twitter:account_id')]/@content
//meta[starts-with(@property, 'twitter:card')]/@content
//meta[starts-with(@property, 'twitter:image:src')]/@content
//meta[starts-with(@property, 'twitter:creator')]/@content

Адрес электронной почты

Хотите собрать адреса электронной почты с вашего сайта или других веб-сайтов? Пожалуйста:

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

С моего сайта код вернет один адрес электронной почты, который находится только на одной странице:
парсинг емейл адреса

Iframes

//iframe/@src

Полученные данные:

iframe

Извлекать только те фреймы, в которые вставлено видео с YouTube:

//iframe[contains(@src ,'www.youtube.com/embed/')]

Извлечение только URL первого iframe, найденного на странице:

(//iframe/@src)[1]

AMP URL

//head/link[@rel='amphtml']/@href

Полученные данные:

amp

Извлечение ссылок из статьи

Следующий XPath запрос будет извлекать ссылки только из основы статьи https://politay.pro/seo-dlya-wordpress/, где содержимое блога содержится в классе 'entry-content'.

//div[@class="entry-content"]//a - получит якорный текст с «Extract Inner HTML»

//div[@class="main-blog--posts_single--inside"]//a/@href - получит URL с «Extract Inner HTML»

//div[@class="main-blog--posts_single--inside"]//a - получит полный код ссылки с «Extract HTML Element»

Извлечение ссылок по анкору

Чтобы извлечь все ссылки с анкором «Политай»:

//a[contains(.,'Политай')]/@href

Этот код чувствителен к регистру, поэтому, если «POLITAY» иногда является «politay», вам придется сделать следующее:

//a[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'politay')]/@href

Author

Владислав Политай

SEO с 2012 года. На данный момент занимаюсь клиентским SEO и популяризацией науки seo в массы через мой блог.

15 комментариев

    • Vladislav
      22.04.2019 Ответить

      Вот так - //figure/img, после чего через автозамену добавить домен

        • Vladislav
          21.08.2020 Ответить

          Там был код xpath - //figure/img. Обновил коммент)

          Пишите в телегу, если помочь нужно)

  1. Виктор
    03.05.2019 Ответить

    Здравствуйте! Подскажите, как можно посчитать сумму определенных классов (class="executors-block-name") при помощи "Function Value"?

    • Vladislav
      07.05.2019 Ответить

      Напишите в телегу, разберемся)

  2. Николай
    29.07.2019 Ответить

    Спасибо! Ваш пример очень помог и облегчил работу в несколько раз. Вообще не знал, что есть такая функция у Frog-а, если честно. Два часа выгружал вручную, подумал, что можно как-то автоматизировать, наткнулся на эту статью, так автор еще и в ЛС отвечает по конструктиву. Еще раз огромное спасибо

    • Vladislav
      29.11.2019 Ответить

      Попробуйте - //div[1]/div/div/div/div/img
      Пишите в телегу, если не выйдет

  3. Виталий
    27.01.2020 Ответить

    Большое спасибо Владиславу за личную помощь в решение моей задачи по XPath. Потратил на меня в телеграмме около 2 часов, чтобы помочь решить задание. Спасибо большое, жму руку и желаю успехов тебе и блогу 🙂

    • Vladislav
      18.04.2020 Ответить

      Там никакой защиты нет) просто парсите в режиме JS

  4. Антон
    05.04.2021 Ответить

    Добрый день.
    Подскажите а есть ли вариант когда ищем определенный урл по списку страниц?
    Т.е. загружаем список страниц в режиме list и нужно найти все ссылки на домен и выгрузить их урлы и анкоры.

    • Vladislav
      06.04.2021 Ответить

      Здравствуйте, да можно)

      Config - Custom - Search

  5. Серьваньга
    28.05.2021 Ответить

    PowerShell религия не позволяет использовать?

Leave a comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *