Функции 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