web-dev-qa-db-fra.com

Dans Google Spreadsheets, la méthode xPath avec Google Maps ne fonctionne plus?

J'ai utilisé cette requête pour calculer la distance entre deux lieux. Cela ne fonctionnera plus et renvoie l'erreur xPath query didn't get any result (traduit de l'italien, je ne sais pas s'il s'agit de la même chose en anglais).

C'est la requête:

=INT(SUBSTITUTE(INDEX(importXML("http://maps.google.com/maps?saddr="&SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE( C5 ;CHAR(13);" ");CHAR(10);" ")); " "; "+")&"&daddr="&SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE( E16 ;CHAR(13);" ");CHAR(10);" ")); " "; "+")&"&ie=UTF8&hl=it&output=mobile&f=d&btnG=Get+Directions" ; "//span[1]" ) ; 1);" km";""))

quel est le problème? Devrais-je mettre à jour cette méthode car elle est obsolète?

3
vitto

Obtenir des données en analysant la source HTML d'une page est une méthode fragile: lorsque la page est remodelée, l'importation va probablement s'interrompre car les données que vous souhaitez ne sont pas à la hauteur de vos attentes. Ce n'est pas un hasard si la plupart des exemples de la propre page de documentation de Google IMPORTXML sont maintenant cassés.

Je recommande d'utiliser API Google Distance Matrix à la place (il s'agit d'un sous-ensemble de l'API Google Maps). Il accepte également les requêtes HTTP et peut renvoyer des données au format XML. mais ce XML aura une structure prévisible et documentée pour la durée de vie de la version de l'API.

Des exemples d'analyse de la réponse XML de Google avec XPath se trouvent ici .

3
user79865