Извлечение данных из HTML-таблицы

Журналистика данных Инструменты

Инструмент: Google Таблицы

Требуемые навыки: Базовые представления о работе с Google Таблицами

В основе этой инструкции лежит мануал Тони Хэрста (Tony Hirst), опубликованный на сайте School of Data под лицензией Creative Commons BY-SA. В него внесены некоторые несущественные изменения, в частности в связи с тем, что у Гугл-таблиц изменился интерфейс.

Данные в HTML-таблице – это, собственно, данные, представленные в виде таблицы на сайте, что мы можем регулярно наблюдать а Сети. Бывают и другие способы размещать данные на сайте (например, библиотеки Javascript), но HTML-таблицы – это очень распространенный случай. Взять хотя бы Википедию.

Формула, с помощью которой Google Таблицы извлекают данные, выглядит так:

=importHTML("","table",N)

  • Между первыми кавычками ставится адрес веб-страницы, на которой таблица расположена.
  • Слово “table” остается неизменным (оно, собственно, указывает, что извлекать надо именно таблицу).
  • N надо заменить на порядковый номер таблицы на странице, считая сверху вниз.
  • Пробелов во всём этом выражении быть не должно.

Возьмем, к примеру, таблицу из Википедии с данными по наиболее густонаселенным районам Великобритании.

wiki_table

Копируем адрес страницы, создаем Гугл-таблицу и вводим в ячейку формулу.

import

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

Вся формула для нашего случая выглядит так:

formula

Нажимаем Enter и ждем, пока Google таблица импортирует данные.

imported_ok

Готово.

Примечание:

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

Еще одно примечание:

Гугл-таблицы в принципе умеют распознавать таблицу и при простом механическом копировании.

copy

paste

В результате получаем нечто похожее, но слегка перекошенное:

imported_badly

Иными словами, в ряде случаев применимо, но надо соблюдать осторожность.

  • Андрей Горбачев

    Здравствуйте! Есть небольшое уточнение и вопрос. К уточнению: если импортировать таблицу через такую формулу, то с ней нельзя производить действия, например, удалять столбцы.

    Не все таблицы на веб-страницах поддаются такому импорту, например на странице по адресу http://dic.academic.ru/dic.nsf/ruwiki/74175 мне не удалось данные таблицы импортировать. Подскажите, как это возможно сделать. Наверное, еще должно быть решение.

    • Здравствуйте!
      Я понимаю, что уже 7 месяцев прошло, с тех пор как вы задали вопрос, но на глаза мне это попалось только сейчас. С другой стороны, не прошло и года.
      Итак. Не знаю, в чем была проблема в том случае, но у меня всё благополучно импортируется. Пруф:
      https://docs.google.com/spreadsheets/d/1Mw5ffFmincDkibg_a2meDS_HSOYkj72JWDeHlgAkrKQ/edit?usp=sharing
      Мне приходят в голову две возможные проблемы. Первое – синтаксическая ошибка. Это может быть любая мелочь: повтор знака равенства, незакрытые кавычки, точка с запятой вместо запятой и т.п. В этом случае таблица выдает ошибку.
      Еще одна проблема – это подбор правильной таблицы. Высчитывать из HTML номер может быть очень нудным занятием, поэтому проще всего действовать методом научного тыка, то есть подбором нужной цифры. Если грузится не то, что нужно, значит пробуем следующий номер.

  • Andrey Klimov

    Спасибо большое! Очень полезная функция.