Проблемы ImportXML / HTML с Google API - PullRequest
0 голосов
/ 06 сентября 2018

Я изо всех сил пытаюсь получить любые результаты от importxml к googlesheet. Ранее я получал вывод, отражающий расстояние, но теперь я получаю сообщение об ошибке «Импортированный контент пуст».

 =importxml("http://maps.googleapis.com/maps/api/directions/xml?origin=" & B9 & "&destination=" & D9 & "&sensor=false&alternatives=false","//leg/distance/value")/1000*0.621371

Кто-нибудь знает обходной путь здесь? Я также попробовал с моим ключом API и у меня была похожая проблема:

=IMPORTHTML("https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=bay+shore,ny&destinations=New+York+City,NY&key=XXXXXXX", "table",3)

Буду очень признателен за любую помощь.

1 Ответ

0 голосов
/ 11 сентября 2018

Это только попытка новичка, поэтому улучшения приветствуются, но, посмотрев URL, опубликованный geocodezip, вы можете передать этот URL на UrlFetchApp.fetch и использовать JSON.parse в getContentText() ответа.

Вы можете использовать в листе как пользовательскую функцию и просматривать с консоли Logger.log(GETDISTANCE());

function GETDISTANCE() {
  
    var res= UrlFetchApp.fetch("https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=bay+shore,ny&destinations=New+York+City,NY&key=");
    var content = res.getContentText();
    var json = JSON.parse(content);
    
    return json.rows[0]["elements"][0]["distance"].text;
}

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

Я определил путь для извлечения текста пробега, изучив структуру JSON, как показано:

enter image description here

...