Google Sheets: Использование функции importXML для веб-скрейпинга

Одним из важнейших свойств Google Sheets является возможность прямого импорта содержимого с веб-сайтов. Функция importXML() в Google Sheets считывает структурированное содержимое веб-сайта и переносит его в выбранный вами Google Sheet.

Факт

Две программы электронных таблиц Google Sheets и Excel могут быть очень похожи, но они отличаются по нескольким важным пунктам. Об этом мы рассказываем в нашем сравнении между Excel и Google Sheets.

Импорт XML в Google Sheets очень удобен, если вы хотите создавать таблицы из данных, которые уже были опубликованы в Интернете. В этой статье вы узнаете, как можно максимально использовать эту возможность. Мы также дадим вам несколько советов о том, что можно сделать с помощью этой полезной функции Google Sheets.

Google Sheets: Функция importXML() — быстрое объяснение

Функция importXML() считывает структурированные данные из онлайн-проектов и вводит их в ячейки электронной таблицы Google Sheets.

Вы можете ввести эту функцию в программе Google, набрав следующее:

=importXML(URL, XPath)

Google Sheets importXML() имеет только два аргумента:

  • URL: Веб-адрес, из которого вы хотите взять данные. Самый простой способ сделать это — скопировать его прямо из адресной строки браузера.
  • XPath: Информация о том, где на странице находятся данные, которые вы хотите импортировать.
Совет .

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

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

Способы использования функции Google Sheets importXML()

Функция importXML() очень универсальна. Особенно полезны следующие четыре способа ее использования:

  • Создание списков ссылок
  • Анализ структурированных данных веб-сайта
  • Извлечение текста
  • Перенос HTML-таблиц

В следующих разделах мы рассмотрим эти четыре примера, чтобы конкретно объяснить вам, как можно использовать importXML в Google Sheets.

Совет

Вы можете получить Google Sheets как часть Google Workspace (ранее G Suite), доступного непосредственно в IONOS — он поставляется с бесплатным доменом!

Создание списков ссылок

Иногда вы можете захотеть организовать интересные веб-адреса в удобный список с их URL, названием и полезным кратким описанием. Сайт Nodesign служит хорошей основой для этого случая. Эта коллекция ссылок представляет собой графические инструменты для разработчиков, не имеющих практически никакой подготовки в области дизайна. Ссылки отображаются в блоках, содержащих картинку, название и краткое описание. В настоящее время в коллекции более 140 ссылок.

Мы хотели бы создать из них легко читаемый список ссылок в Google Sheets с помощью функции importXML(). Вот как мы это сделаем:

  1. Найдите содержимое в исходном коде веб-страницы.

В данном случае нам нужен URL, якорный текст (т.е. текст ссылки) и краткое описание. Для этого заходим в инструменты разработчика в браузере (нажав F12 или щелкнув правой кнопкой мыши и выбрав «Inspect») и выбираем первую плитку. Нужные нам данные находятся под тегом <h5>: URL (1), якорный текст ссылки (2) и краткое описание (3).

  1. Определите XPath

Следующим шагом будет определение XPath для всех трех частей информации:

URL: URL — это «атрибут» тега <a>, который находится под тегом <h5>. XPath выглядит следующим образом:

//h5/a/@href

Anchor text: Якорный текст — это содержимое тега <a>, о котором мы только что говорили: //h5/a. Вы можете просто взять XPath из вышеприведенного текста и удалить атрибут @href.

Краткое описание: Этот XPath немного сложнее, поскольку он не находится на том же уровне иерархии, что и тег <a>. Если мы просто возьмем в качестве XPath раздел, помеченный тегом <p>, тексты перестанут соответствовать своим URL. Поэтому нам нужно определить раздел, содержащий краткое описание, как элемент, который идет после тега <h5> на том же уровне иерархии:

//h5/following-sibling::p
  1. Использование функции в Google Sheet

Теперь мы напишем инструкцию importXML() в столбце для каждого из трех фрагментов данных. Нам нужно сделать это только в первой строке, так как программа автоматически заполнит строки ниже. Формула также сама перезапишет свое содержимое.

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

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

Анализ структурированных данных веб-сайта

Составленный нами список ссылок теперь можно анализировать различными способами в зависимости от наших потребностей. Например, можно перечислить мета-заголовок, мета-описание, язык и кодировку для всех найденных URL — эта информация важна для целей SEO.

Для этого мы должны записать данные XPath в верхней строке и создать нашу функцию во второй строке (пример: второй столбец):

=importXML($A2,B$1)

Формула берет URL из первого столбца и XPath из верхней строки. Чтобы мы могли перетаскивать формулу вниз и вправо, мы должны установить первый столбец и строку как абсолютную ссылку (с помощью символа $).

Примечание

Результаты #N/A означают, что данные не удалось найти на веб-странице.

Чтобы отделить таблицу от связанного веб-сайта, мы можем выделить ее, скопировать и нажать Shift + Ctrl + V, чтобы вставить ее в новую электронную таблицу.

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

Благодаря достижениям в области распознавания текста с помощью искусственного интеллекта, также известного как обработка естественного языка, растет потребность в извлечении большого количества текста с веб-сайтов для аналитических целей.

Хорошими примерами этого являются газеты, новостные агрегаторы или RSS и сайты с обзорами прессы. Они предоставляют ценную информацию для анализа тенденций.

Для нашей демонстрации использования мы выбрали сайт обзора новостей newstral.com. Мы просто хотим извлечь список всех заголовков. Мы можем сделать это следующим образом:

  1. Найдите содержимое в исходном коде веб-страницы.

В инструментах разработчика (клавиша F12 или щелчок правой кнопкой мыши и выбор пункта «Inspect») сначала выбираем заголовок и смотрим, как он структурирован. В данном случае структура совсем несложная — заголовок является якорным текстом ссылки (нижняя строка).

  1. Определите XPath

Однако если мы хотим получить только заголовки, а не все остальные ссылки на главной странице, нам нужно быть немного более точными при написании XPath. Мы хотим найти только теги <a> в классе «headline», то есть те, которые находятся в разделе класса «headlines-container».

//div[@class="headlines-container"]/ul/li/span/a[@class="headline"]
  1. Использование функции в листе Google

Мы помещаем URL и XPath в первый столбец нового листа Google. Отсюда мы можем легко взять их для написания функции:

(Cell B1) =importXML(A1,A2)
(Cell B2) =importXML(A1,A3)

Результатом будет список заголовков. Самое интересное? Вы можете обновить этот список в любое время, нажав F5, чтобы всегда видеть самое свежее содержимое.

Совет

Хотите узнать больше трюков для Google Sheets? Здесь вы можете прочитать о том, как использовать выпадающие списки Google Sheets.

Перенос HTML-таблиц

Достаточно одной формулы, чтобы перенести таблицу с веб-сайта в Google Sheets. В качестве примера возьмем таблицу в статье Википедии о моделях Samsung Galaxy. Для импорта этой таблицы нам просто необходим тег <table> в XPath. Однако сначала нам нужно выяснить, сколько тегов <table> находится перед нужным нам тегом. Наша таблица является третьей на странице. Поэтому формула выглядит следующим образом:

=importXML(“https://en.wikipedia.org/wiki/Samsung_Galaxy”, “//table[3]/tbody/*”)

Вуаля! С помощью всего одной формулы в ячейке B1 мы смогли отобразить в нашей электронной таблице всю таблицу со всеми ее строками и столбцами.

Вы убедились в этом сами — импорт XML в Google Sheets невероятно универсален и сэкономит вам массу времени и работы.

Заметка

Многие платформы социальных сетей и крупные интернет-магазины, такие как Amazon, запрещают веб-скрейпинг. Ознакомьтесь с пользовательскими условиями, прежде чем опробовать свои недавно приобретенные навыки веб-скрейпинга на этих платформах.

Оцените статью
cdelat.ru
Добавить комментарий