Функции Google Spreadsheets в помощь SEO-специалисту

В работе, SEO-специалисту приходится собирать, систематизировать и обрабатывать большие объемы различной информации. Часть таких задач можно автоматизировать с помощью встроенных функций в Google Spreadsheets.

Собираем мета теги сайта с помощью функции ImportXML в Google Spreadsheets

Многие пользователи Google Docs не знают, что Google таблицы не только имеют функции аналогичные Excel, но и свои собственные, которые можно использовать для парсинга различных мета тегов из html кода сайтов.

Зачем и как парсить сайт?

Парсинг — автоматический процесс сбора информации из онлайн-ресурсов.

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

Рассмотрим подробнее, что можно парсить с помощью функции ImportXML.

  • title;
  • h1/h2;
  • различные мета описания (description, canonical, robots...);
  • ссылки;
  • название товаров и цены;
  • адреса электронной почты;
  • страницы из XML Sitemap;
  • ссылки на социальные сети;
  • количество товаров в категории и цены;
  • автора статьи;
  • количество комментариев;
  • даты публикации;
  • и много другое

Фактически, парсить можно любые элементы страницы.

В общем виде синтаксис функции выглядит так:

=importXML("URL"; "XPath Expression")

или, если адрес берем из ячейки в таблице, - так:

=importXML(ячейка-с-URL; "XPath Expression")

Если нужно получить какие-то определенные элементы со страницы, понадобятся основные правила синтаксиса XPath:

  • класс (class): “//div[@class=”название_класса"]”- получаем контент определенного класса.
  • идентификатор элемента (id): “//a[@id = ‘айди_элемента’]/@href “- получаем адрес ссылки с нужным id.
  • номер по порядку: “//a[@class=”link”][3]/@href” – получим адрес третьей ссылки на странице с классом class=”link”

Например:

<li class=”info″><a href=”https://site.com/info/”>Информация</a></li>

Запрос “//li[@class=’info′]/a/@href” — спарсит: https://site.com/info/

Запрос “//li[@class=’info′]” — спарсит: Информация.

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

Есть еще несколько способов узнать нужный параметр элемента XPath.

С помощью инструментов разработчика браузера Google Chrome

Для этого на нужном элементе странице нажимаем правой кнопкой мышки и выбираем просмотреть код, либо нажимаем F12 на клавиатуре.

В инструментах разработчика, выбираем нужный элемент, кликаем правой кнопкой мышки и в меню выбираем: Copy — Copy XPath. Скопированный XPath вставляем в функцию =importxml.

С помощью дополнения для Google Chrome под названием XPath Helper

После установки дополнения, активируем его на панели дополнений, либо комбинацией Ctrl+Shift+X.

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

Справа в поле Results будет название элемента (результат), а слева в поле Query нужный нам адрес.

Пример:

В данном случае мы скопировали последний элемент в хлебных крошках карточки товара, который представляет собой название товара. Если мы вставим полученный код в таблицу, то сможем получить название товаров для указанных страниц, результат:

Дальнейшее применение функции зависит только от задач и фантазии.

Теперь несколько примеров, которые можно использовать как шаблон для работы.

Для парсинга Title

Создаем новую таблицу Google Spreadsheets

В ячейку A2 вводим адрес сайта (указываем полный адрес с http или https, код ответа сервера должен быть 200)

В ячейку B2 вводим функцию и XPath Expression (в нашем случае “//title”): =IMPORTXML(A2;"//title")

Для description

=IMPORTXML(A2;"//meta[@name='description']/@content")

Для заголовка H1

=IMPORTXML(A2;"//h1")

Для мета robots

=IMPORTXML(A2;"//meta[@name='robots']/@content")

Изменил расположение полей, чтобы все было видно

Для мета canonical

=ImportXML(A10;"//link[@rel='canonical']/@href")

Для наглядности добавил адрес страницы с прописанным canonical, иначе не было бы данных.

Получаем все ссылки со страницы:

=importXML(A2;"//a/@href")

Добавляем анкоры ссылок:

=importXML(A2;"//a")

Либо так: =importXML(A2;"//a/text()) — нужно смотреть как выгружает правильно

Если на ссылках есть изображения с прописанным атрибутом alt, можно добавить и его, тогда функция будет иметь такой вид: =importXML(A2;”(//a/text()|//a/img/@alt)”)

Чтобы выгрузить все внутренние ссылки, нужно использовать функцию:

=IMPORTXML(“http://www.domain.com”;"//a[contains(@href, 'domain.com')]/@href")

Чтобы выгрузить все внешние ссылки, нужно использовать функцию такого вида:

=IMPORTXML(“http://www.domain.com”;"//a[not(contains(@href, 'domain.com'))]/@href")

Стоит отметить, что если ссылки на странице прописаны относительные, то выгрузить внутренние ссылки не получится.

Парсим ссылки на профили в социальных сетях

=IMPORTXML(A2;"//a[contains(@href, 'linkedin.com/in') or contains(@href, 'twitter.com/') or contains(@href, 'facebook.com/') or contains(@href, 'vk.com/') or contains(@href, 'plus.google.com/') or contains(@href, 'behance.net/') or contains(@href, 'ok.ru/')]/@href")

Встроенная функция автоматического перевода GoogleTranslate

Еще одна полезная функция, которая может пригодиться при работе с семантикой на нескольких языках — функция GOOGLETRANSLATE, которая позволяет переводить текст прямо в ячейках документа.

Синтаксис функции следующий:

GOOGLETRANSLATE(текст; [язык_оригинала]; [язык_перевода])

text – текст, который необходимо перевести. Если взять текст в кавычки, то можно записать его в формулу, но гораздо удобнее сослаться на ячейку, в которой разместить текст.

Язык для перевода также можно указать как в функции, так и сослаться на ячейку, язык указывается двузначным кодом.

Немного модифицировав функцию

=GOOGLETRANSLATE($A2;$A$1;B$1), можно получить такой результат:

Извлекаем домены с помощью функции REGEXEXTRACT

С помощью данной функции можно из массива адресов извлечь домены, отсеяв остальной мусор:

=REGEXEXTRACT(A2;"^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+)")

Парсим e-mail адреса

=IMPORTXML(A2;"//a[contains(@href, 'mailTo:') or contains(@href, 'mailto:')]/@href")

С помощью REGEXREPLACE, убираем лишнее и получаем результат:

Объединение массивов данных

Иногда бывает полезно объединить несколько массивов данных в один, это просто сделать используя фигурные скобки {}.

Для вертикального объединения необходимо, чтобы во всех фрагментах было одинаковое количество столбцов.

Если вместо точки с запятой (;) поставить разделителем обратный слеш (\) - получится горизонтальное объединение.

Для горизонтального объединения необходимо, чтобы количество строк во всех фрагментах совпадало.

Один раз собрав нужные функции в шаблон, можно будет дальше использовать его в работе, существенно экономя время.

Автор: embozzy