Вопрос:

Парсинг HTML-файлов с Google Диска (не с веб-страницы) с помощью Google Script

javascript scripting google-sheets google-drive-api

475 просмотра

1 ответ

6 Репутация автора

Я храню все рецепты моей жены в паприке. Одна из вещей, которые я хочу сделать, это экспортировать всю базу данных рецептов в электронную таблицу. Паприка экспортирует только два формата: один - это собственный проприетарный формат .paprika , который не читается человеком. Другой - как серия файлов .html . HTML-файлы содержат метаданные hrecipe, поэтому я надеюсь, что смогу использовать это для извлечения необходимой информации.

Я подумал, что лучший способ просмотреть набор файлов и извлечь всю необходимую мне информацию - это поместить их в папку на Google Диске и использовать Google Sheets and Scripts для извлечения необходимой информации.

Поэтому мой вопрос: возможно ли извлечь необходимую информацию из файлов HTML рецепта с помощью Google Script? В Google Script есть анализатор HTML, который может просматривать существующую веб-страницу и извлекать из нее информацию, но я не могу заставить его работать с реальным HTML-файлом вместо опубликованной веб-страницы.

Любые предложения или помощь будут оценены.

Автор: Jody Lane Источник Размещён: 08.11.2017 10:37

Ответы (1)


0 плюса

37212 Репутация автора

Как насчет этого метода? Используя DriveApp, вы можете извлечь данные из HTML-файла на Google Drive. Я думаю, что есть 2 шаблона для извлечения данных из файла HTML. Для этого примера в качестве примера HTML используется следующий HTML.

Образец HTML:

Этот образец HTML помещается на Google Drive.

<html>
  <body>
    <a href="https://www.google.com/">Google</a>
  </body>
</html>

Образец 1:

Если XmlService может использоваться для вашего HTML-файла, вы можете использовать этот скрипт.

var fileId = "### file ID of HTML ###";
var html = DriveApp.getFileById(fileId).getBlob().getDataAsString(); // Retrieve data from HTML file as string.

var data = XmlService.parse(html).getRootElement().getChild('body');
var url = data.getChild('a').getAttribute("href").getValue();
var value = data.getChild('a').getValue();
Logger.log("URL: %s, Value: %s", url, value);

Образец 2:

Если XmlService не может быть использован для вашего HTML-файла, вы можете получить данные, используя библиотеку «Parser». Пример сценария выглядит следующим образом.

var fileId = "### file ID of HTML ###";
var html = DriveApp.getFileById(fileId).getBlob().getDataAsString(); // Retrieve data from HTML file as string.

var url = Parser.data(html).from('<a href="').to('">').build();
var value = Parser.data(html).from('<a href="'+ url + '">').to('</a>').build();
Logger.log("URL: %s, Value: %s", url, value);

Оба результата есть URL: https://www.google.com/, Value: Google.

Рекомендации :

Если я неправильно понимаю ваш вопрос, извините.

Автор: Tanaike Размещён: 08.11.2017 11:29
Вопросы из категории :
32x32