@opex13
Семь бед - один Reset!

Как вызвать формулу импорта с сайта с Jsp?

Есть ссылка типа - ec.europa.eu/taxation_customs/dds2/tra/transit_home.jsp?Lang=fi&MRN=15FI000000010520T8&Expand=true
Задача - вытащить последнюю дату из открытого списка средствами гуглотаблиц.
ImportHTML отвечает что там таблицы нет, т.к. запрос к яваскрипту делать не умеет, и примерно так же ведёт себя и ImportXML.
Буду рад за любые наводки на верный путь или костыли.
  • Вопрос задан
  • 2362 просмотра
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Sheets
Google Products Expert
Здравствуйте.

Это называется что-то типа "browser on server".
По идее, мы должны заставить сервер, загрузить к себе страницу, вызвать все клиентские процедуры, взять контекст и разобрать его, выдать результат в сеть.
Проблемы:
  • Где взять/запустить/выпросить/настроить сервер обычным смертным?
  • Что!?

Идея:
  • Организовать часть автоматизации на рабочем месте.
  • Публиковать данные, ака "выдать результат в сеть", на Диске Google.

По шагам:
  1. Необходимо скачать и распаковать phantomjs.org/download.html Пусть папка с файлом phantomjs.exe называется
    'C:\phantomjs\bin'
  2. Необходимо скачать файл parse_jsp_to_file.js Сохраните его туда же, где лежит файл phantomjs.exe
  3. Необходимо установить Диск для Mac/PC
  4. Необходимо настроить паку на диске для общего доступа (Видно всем в Интернет). Назовем ее FOLDER.
  5. Необходимо, чтобы папка FOLDER синхронизировалась в Диск для Mac/PC. Пусть ее путь будет
    'C:\Диск Google\FOLDER'
  6. Открыть файл parse_jsp_to_file.js текстовым редактором и изменить строку
    var folder = 'C:\\_\\Google Drive\\temp (main)\\(public)\\';

    на строку
    var folder = 'C:\\Диск Google\\FOLDER\\';
    *следите за слэшами. Настройка указана для Windows
  7. Остается запустить командную строку и вставить туда
    'C:\phantomjs\bin\phantomjs.exe parse_jsp_to_file.js'

  8. Если в папке C:\Диск Google\FOLDER появился файл yyyy-mm-dd.xml, то можно идти дальше, иначе - ковырять и проверять.
  9. Необходимо получить ID папки FOLDER на Диске. Это самая длинная комбинация Цифр/Букв в адресе общего доступа.
  10. Необходимо взять формулу IMPORTXML() из файла goo.gl/GUpaf2
  11. Необходимо заменить в этой формуле ID на свой.
  12. Все.

У меня работает как часы.
Проблемы:
  • Я не добавлял обработчики исключений.
  • JS файл должен быть в кодировке UTF-8
  • Я добавил BAT файл для своей настройки. Но у меня C:\phantomjs\bin находится в переменных среды.

Что в итоге:
  • BAT можно настроить на запуск каждый день.
  • Файлы записываются по одному на каждый день.
  • В Таблицах появляется возможность отследить дату изменения контекста.

P.S.:
Для множества ссылок, необходимо просто использовать другой скрипт simple_cycle.js. Ему необходимо существование файла file.txt, где описаны параметры, которые должны формировать URL для запроса.
Результат на листе "Пример с несколькими файлами" goo.gl/GUpaf2.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы