UltKit
Изображения11
PDF13
Документы и данные7
Видео6
Аудио4
Другие инструменты22

Конвертер HTML в JSON

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

Конвертер данных

или перетащите сюда файлы CSV, TSV, TXT … ·

Макс. 95 MB на файл· До 20 файлов· Удаляются через 30 минут

Вывод

Файлы обрабатываются на наших серверах и удаляются через 30 минут.

Как пользоваться инструментом

  1. 1

    Сохраните страницу или таблицу

    В браузере нажмите Ctrl+S (Cmd+S на Mac) и сохраните HTML-файл или скопируйте разметку таблицы из инструментов разработчика в файл .html. Загрузите до 20 файлов по 95 MB каждый.

  2. 2

    Выберите структуру JSON

    Массив объектов уже выбран по умолчанию. В разделе Расширенные настройки переключите Структура JSON на массив массивов, чтобы файл получился компактнее, или отключите Форматирование с отступами, чтобы получить одну строку.

  3. 3

    Конвертируйте и используйте данные

    Нажмите Конвертировать в JSON, скачайте файл и загрузите его через JSON.parse в JavaScript, json.load в Python или в любом API-клиенте.

Сохраните страницу, загрузите файл .html, и каждая строка таблицы вернётся как объект JSON с ключами из ячеек заголовка.

Когда веб-таблицу нужно перевести в JSON

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

Обычно советуют написать скрапер: загрузить страницу, разобрать её через Beautiful Soup или Cheerio, пройти по строкам и сопоставить ячейки. Это оправданно, если страница меняется каждый день. Для таблицы, нужной один раз, быстрее загрузить сохранённую страницу, и поддерживать ничего не придётся.

Пример: HTML-таблица в JSON

Входная таблица с заголовками th City и Founded и результат в виде массива объектов
<table>
  <tr><th>City</th><th>Founded</th></tr>
  <tr><td>Porto</td><td>1123</td></tr>
  <tr><td>Graz</td><td>1128</td></tr>
</table>

[
  { "City": "Porto", "Founded": 1123 },
  { "City": "Graz", "Founded": 1128 }
]

Что сохраняется и что теряется при конвертации

  • Сохраняются: текст ячеек, строка заголовков как ключи и порядок строк
  • Отбрасываются: CSS, встроенные стили, классы и всё, что на странице вокруг таблицы
  • Отбрасываются: изображения и значки внутри ячеек, у которых нет текстового значения
  • Ячейки со ссылками сохраняют видимый текст, а не URL
  • Пробелы в начале и конце ячеек удаляет параметр Удалить лишние пробелы
  • Результат в кодировке UTF-8, которую RFC 8259 требует для JSON, передаваемого между системами

Ограничения конвертера HTML в JSON

принимаются сохранённые страницы
.html .htm
страниц за раз
20
на один загруженный файл
95 MB
после этого файлы удаляются
30 мин

Сравнение HTML и JSON

HTML

Язык разметки HTML

HTML — язык разметки веба, впервые описанный Тимом Бернерсом-Ли в начале 1990-х; сейчас его развивает WHATWG как «живой стандарт». HTML-файл описывает заголовки, абзацы, ссылки, таблицы, изображения и формы, а оформление обычно задаётся через CSS. Его отображает любой браузер; формат также используется для шаблонов писем и сохранённых веб-страниц. Отдельный HTML-файл часто зависит от внешних изображений и таблиц стилей, поэтому после переноса без них он может выглядеть «сломанным».

Сжатие
–
Прозрачность
–
Анимация
–
Год появления
1993 · Tim Berners-Lee; maintained by WHATWG
Конвертер HTML

JSON

Формат JSON (JavaScript Object Notation)

JSON — лёгкий текстовый формат для структурированных данных, который популяризировал Дуглас Крокфорд в начале 2000-х; он стандартизован как RFC 8259 и ECMA-404. Он описывает объекты, массивы, строки, числа, логические значения и null с помощью простого и читаемого синтаксиса. Это формат по умолчанию для веб-API, файлов конфигурации и обмена данными между приложениями практически на любом языке программирования. В нём нет встроенных комментариев, дат и схем, а большие вложенные файлы трудно читать без просмотрщика.

Сжатие
–
Прозрачность
–
Анимация
–
Год появления
2001 · Douglas Crockford
Конвертер JSON

HTML переводят в JSON, когда таблицу, опубликованную для читателей на странице отчёта, во внутренней сети или на сайте с открытой статистикой, нужно передать скрипту, библиотеке диаграмм или тесту API.

Эти два формата возникли в разных традициях. HTML, впервые описанный Тимом Бернерсом-Ли в 1991 году и теперь поддерживаемый WHATWG как живой стандарт, размечает документы для отображения. JSON, описанный Дугласом Крокфордом и стандартизированный как RFC 8259 и ECMA-404, хранит только данные. Переход от первого ко второму в основном сводится к отбрасыванию оформления, поэтому результат обычно намного меньше сохранённой страницы. Для таблиц, которые пришли как XML-ленты, а не веб-страницы, аналогичную задачу решает XML в JSON.

Вопросы о конвертации HTML в JSON

Конвертер читает всю веб-страницу или только таблицы?

Только табличную разметку: строки и ячейки внутри элементов table, tr, th и td. Меню навигации, абзацы и карточки, собранные из элементов div, не являются табличными данными, поэтому в JSON они не попадают.

Из какой строки берутся ключи JSON?

Строка заголовков, обычно ячейки th в верхней части таблицы. Если включён параметр Первая строка — заголовок, её текст становится ключом для каждого значения ниже, так что столбец с заголовком Population даст "Population": "…" в каждом объекте.

Как обрабатываются ячейки с colspan и rowspan?

Объединённая ячейка занимает несколько позиций сетки, но содержит одно значение. Оно окажется только в первой позиции, поэтому после конвертации проверьте объединённые столбцы и при необходимости заполните пропуски в коде, если в таблице есть объединённые заголовки.

Почему числа в JSON записаны с запятыми или знаками сносок?

Веб-таблицы пишут для читателей, поэтому в ячейке может стоять 1,204,000 или 8.3[2]. Простое число вроде 1123 станет числом JSON, а такие ячейки числами не являются и остаются строками: перед вычислениями уберите разделители и сноски в коде.

Можно ли извлекать таблицу с чужого сайта?

Это зависит от условий сайта и самих данных, а не от формата файла. Обычно это открытая статистика и ваши собственные выгруженные отчёты; прежде чем использовать чужой контент, проверьте условия.

Можно ли получить таблицу Excel вместо JSON?

Да. HTML в CSV запишет ту же таблицу строками, разделёнными запятыми, которые открываются в Excel, Google Sheets или Numbers.