[Résolu][Calc] Récupération d'itinéraire depuis le Web

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
agraeth
Membre OOrganisé
Membre OOrganisé
Messages : 51
Inscription : 15 avr. 2014 15:57

[Résolu][Calc] Récupération d'itinéraire depuis le Web

Message par agraeth »

Bonjour,

Est-il possible à partir d'une URL (par exemple h**p://maps.google.fr/maps?f=d&saddr=lyon&daddr=nancy) de récupérer les données de la page en question ?

Cette URL renvoie la page suivante :
maps.PNG
Les données qui m'intéressent étant celles encadrées en rouge, si il possible de ne récupérer que celles là, c'est la cerise sur le gâteau ! Sinon récupérons la page entière et je me débrouillerai après :super:

Pour info, l'adresse renvoyée après le chargement de l'URL est la suivante :
h**ps://www.google.fr/maps/dir/Lyon/Nancy/@47.2 ... d48.692054

Les villes de départ et d'arrivée étant amenées à changer, je ne peux connaître que l'URL de départ.
En effet l'adresse renvoyée après le chargement ne peux pas être connue car la partie après la ville destination (ici Nancy) est variable...

Merci de votre aide !
Dernière modification par agraeth le 11 janv. 2018 16:59, modifié 1 fois.
LibreOffice 4.3.7.2.lin04 (non modifiable, version officielle employeur - poste fixe) sous Windows 7 Pro
LibreOffice 6.2.7.1.lin1 (non modifiable, version officielle employeur - poste nomade) sous Windows 10 Pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Calc] Récupération de données Web

Message par Dude »

Comme d'habitude, il faut lire un peu ce qui se poste ici avant.
Même problématique passée la semaine dernière : https://forum.openoffice.org/fr/forum/v ... =8&t=56659
agraeth
Membre OOrganisé
Membre OOrganisé
Messages : 51
Inscription : 15 avr. 2014 15:57

Re: [Calc] Récupération de données Web

Message par agraeth »

Salut Dude,

Il me semble que le fil indiqué traite de l'extraction d'un fichier disponible depuis une page web.
Je cherche plutôt à récupérer des données affichées sur une page web...

Toujours est-il que j'ai voulu test le dernier code de JP :

Code : Tout sélectionner

Sub RecupFichier()
URL = "http://s599720764.onlinehome.fr/cartocistes/export_csv.php?idRegion=23"
  oSFA = CreateUnoService("com.sun.star.ucb.SimpleFileAccess")
  oInputStream = oSFA.openFileRead(URL)
  oSFA.writeFile("f:\temp\MonFic.csv",oInputStream)
End Sub
Il me donne une erreur sur la ligne : oInputStream = oSFA.openFileRead(URL)
Erreur d'exécution BASIC.
Une exception s'est produite :
Type: com.sun.star.ucb.InteractiveNetworkResolveNameException
Message: .
Dernière modification par agraeth le 12 janv. 2018 08:55, modifié 1 fois.
LibreOffice 4.3.7.2.lin04 (non modifiable, version officielle employeur - poste fixe) sous Windows 7 Pro
LibreOffice 6.2.7.1.lin1 (non modifiable, version officielle employeur - poste nomade) sous Windows 10 Pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Calc] Récupération de données Web

Message par Dude »

agraeth a écrit :Il me semble que le fil indiqué traite de l'extraction d'un fichier disponible depuis une page web.
Je cherche plutôt à récupérer des données affichées sur une page web...
C'est la même chose : des données sont dans les deux cas transférées.
Qu'elles soient interprétées par un navigateur ou copiées dans un fichier, cela revient au même.
agraeth a écrit :Il me donne une erreur sur la ligne : oInputStream = oSFA.openFileRead(URL)
Je ne reproduis pas. Le code fonctionne comme attendu sous AOO 4.1.5 :
no_problemo.gif
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 623
Inscription : 10 août 2017 00:15

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par Jurassic Pork »

hello,
en utilisant le service Open source routing machine et son api (voir ici ) et l' extension L.O, O.O EasyDev (voir ici ) tu peux récupérer les infos d'un itinéraire en format json. Après soit tu décodes le json avec du code basic ou tu utilises une macro en python car il y a un parser json.
Voici un exemple de code pour récupérer ton trajet qui était en openstreetmap :

Code : Tout sélectionner

Sub RecupItineraire()
util = createUnoService("org.universolibre.EasyDev")
data = createUnoStruct("org.universolibre.EasyDev.Requests")
data.Method = "get"
data.Url = convertToURL("http://router.project-osrm.org/route/v1/driving/2.00,46.00;3.00,47.00")
args = Array( _
        Array("verify", True) _
 )
data.Args = args
response1 = util.requests(data)
util.msgbox(response1.Text())
End Sub
et voici ce que l'on obtient :
OSRM-EasyDev-LibreOffice.png
Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
agraeth
Membre OOrganisé
Membre OOrganisé
Messages : 51
Inscription : 15 avr. 2014 15:57

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par agraeth »

Bonjour,

J'ai édité mon message précédent : la solution que j'avais indiqué ne fonctionnait finalement absolument pas :aie:
Du coup, suppression pur et simple du paragraphe...

Dude, y a-t-il un module ou une extension à installer ou charger pour que cela fonctionne ?

JP, ta solution semble intéressante, par contre je ne connais absolument pas Python...
J'ai installé l'extension EasyDevLib, et testé ton code, mais il me donne une erreur sur la dernière ligne : util.msgbox(response1.Text())
Erreur d'exécution BASIC.
Variable d'objet non définie
Dernière modification par agraeth le 12 janv. 2018 09:27, modifié 1 fois.
LibreOffice 4.3.7.2.lin04 (non modifiable, version officielle employeur - poste fixe) sous Windows 7 Pro
LibreOffice 6.2.7.1.lin1 (non modifiable, version officielle employeur - poste nomade) sous Windows 10 Pro
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par Dude »

Le service com.sun.star.ucb.SimpleFileAccess est interne au Basic.
Le code fonctionne avec l'URL que tu donnes :
no_problemo.png
Dans ta signature, il y a écrit :LibreOffice 4.3.7.2 (non modifiable, version officielle du bureau) sous Windows 7 Pro
agraeth a écrit :Dude, y a-t-il un module ou une extension à installer ou charger pour que cela fonctionne ?
Je dirais plutôt qu'il y a une mise à jour à faire vers une version stable.
agraeth
Membre OOrganisé
Membre OOrganisé
Messages : 51
Inscription : 15 avr. 2014 15:57

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par agraeth »

Je dirais plutôt qu'il y a une mise à jour à faire vers une version stable.
Alors là, si j'avais la main, ce serait fait dans la demi seconde !
LibreOffice 4.3.7.2.lin04 (non modifiable, version officielle employeur - poste fixe) sous Windows 7 Pro
LibreOffice 6.2.7.1.lin1 (non modifiable, version officielle employeur - poste nomade) sous Windows 10 Pro
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12196
Inscription : 08 nov. 2005 17:23
Localisation : Caen, France
Contact :

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par Bidouille »

agraeth a écrit :J'ai édité mon message précédent : la solution que j'avais indiqué ne fonctionnait finalement absolument pas :aie:
Du coup, suppression pur et simple du paragraphe...
Évitez de faire ça : sans quoi la logique de lecture ne sera plus respectée.
Vous ne devez modifier un message que s'il n'est pas encore suivi par un autre.

Veillez aussi à ne pas poster plusieurs messages à la suite.
Cela alourdit inutilement la lecture du fil.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par Dude »

agraeth a écrit :Alors là, si j'avais la main, ce serait fait dans la demi seconde !
Si ton service informatique a du mal à se bouger, tu peux toujours installer une version portable :
h**ps://portableapps.com/apps/office

Rappelez aussi que garder des versions anciennes, c'est laissé la porte ouverte aux failles de sécurité.
agraeth
Membre OOrganisé
Membre OOrganisé
Messages : 51
Inscription : 15 avr. 2014 15:57

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par agraeth »

Dude,

J'ai testé en passant par la version portable, mais sans plus de succès...
J'ai toujours la même erreur...

J'ai alors testé ce code issu de la bible (merci BM et LG) :

Code : Tout sélectionner

sub lecturecodesource()

oDoc = ThisComponent
Feuilcp1 = oDoc.getSheets.getByName("Feuille5")
dim monurl as string
dim lareponse as string
dim n as integer
dim i as integer
dim nl as integer
monurl=ConvertToURL("http://router.project-osrm.org/route/v1/driving/2.00,46.00;3.00,47.00")


Open monurl for input as #1
line input #1, lareponse
     
 

do while not eof(#1)
      line input #1, lareponse
      n = n + 1
       feuilcp1.getCellByPosition( 1 ,n ).formula=lareponse
       
   loop


close #1


end sub
Provoque une erreur sur la ligne "Open monurl for input as #1"
Erreur d'exécution BASIC.
Erreur d'E/S de périphérique.
Peut-être que le fait de passer par un proxy pose problème.
LibreOffice 4.3.7.2.lin04 (non modifiable, version officielle employeur - poste fixe) sous Windows 7 Pro
LibreOffice 6.2.7.1.lin1 (non modifiable, version officielle employeur - poste nomade) sous Windows 10 Pro
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 623
Inscription : 10 août 2017 00:15

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par Jurassic Pork »

hello,
essaie de tester l'adresse url :

Code : Tout sélectionner

http://router.project-osrm.org/route/v1/driving/2.00,46.00;3.00,47.00
dans un navigateur.
Sinon peut-être un pb de parefeu ou de proxy qui n'autorise pas LibreOffice à accèder à des pages internet.
Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
agraeth
Membre OOrganisé
Membre OOrganisé
Messages : 51
Inscription : 15 avr. 2014 15:57

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par agraeth »

Bonjour,

JP, l'URL renvoie :
{"routes":[{"geometry":"mywwGs{dKz^hnClqCpaAv|D{qMop@meSn[c}A_lEyiEe{GkfAafPbtCuiNsiKa{IsmTu_GsyJmbDs~KycA{bJeoE_gBocBuhD}_@esGheAwjAdDanBmoDkyKweQfmIodCfaEri@jQuvFhfAyhI|]ypUc{MglCvoAggAeoPwhIktYq}GgaFksMcoAmqAlgAkdBud@okDsaCgl@uvDcnAytA","legs":[{"summary":"","weight":10681.8,"duration":9517.1,"steps":[],"distance":189252.2}],"weight_name":"routability","weight":10681.8,"duration":9517.1,"distance":189252.2}],"waypoints":[{"hint":"IfuQhkRutIYsAAAAggAAAMkGAAD1BQAAFgAAAEEAAABmAwAA-wIAALbfAADmdR4AhfC9AoCEHgCA570CDACfAoj4uKI=","name":"Route de Petillat","location":[1.996262,46.002309]},{"hint":"P098gr9W_YdNAAAAgAEAAGwCAABTAAAATQAAAIABAABsAgAAUwAAALbfAADL6y0ADR3NAsDGLQDAKc0CCgDvDIj4uKI=","name":"","location":[3.009483,46.996749]}],"code":"Ok"}
Je testerai depuis mon domicile, je n'ai pas eu le temps de le faire ce week-end...

Ce qui est surprenant, c'est que je puisse ouvrir une page URL depuis LO mais pas d'en récupérer les données...
LibreOffice 4.3.7.2.lin04 (non modifiable, version officielle employeur - poste fixe) sous Windows 7 Pro
LibreOffice 6.2.7.1.lin1 (non modifiable, version officielle employeur - poste nomade) sous Windows 10 Pro
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 09:26

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par Hubert Lambert »

Bonjour,

Il existe une api relativement simple d'utilisation et basée sur les cartes d'OpenStreetMap : https://developer.mapquest.com/document ... map-api/v5 (afficher une des images pour obtenir un exemple d'url).
Je joins un exemple d'utilisation en basic, qui n'est pas nécessairement simple à mettre en place (peut-être ne fonctionnera-t-il pas sur toutes les plateformes).
agraeth.png
La clé api utilisée a été récupérée sur le site donné plus haut. Il est probable qu'elle change régulièrement. Le mieux sera évidemment d'ouvrir un compte pour obtenir une clé personnelle...
Cordialement.
Pièces jointes
agraeth.odt
(17.18 Kio) Téléchargé 105 fois
Dernière modification par Hubert Lambert le 15 janv. 2018 17:41, modifié 1 fois.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
agraeth
Membre OOrganisé
Membre OOrganisé
Messages : 51
Inscription : 15 avr. 2014 15:57

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par agraeth »

Bonjour Hubert,

Je viens de tester, mais j'ai une erreur à la ligne 25 selon le message renvoyé...
Cela semble correspondre à l'instruction : inputstream = sfa.openFileRead(convertToURL(url))

Ce qui semble cohérent avec les problèmes rencontrés plus haut :aie:
LibreOffice 4.3.7.2.lin04 (non modifiable, version officielle employeur - poste fixe) sous Windows 7 Pro
LibreOffice 6.2.7.1.lin1 (non modifiable, version officielle employeur - poste nomade) sous Windows 10 Pro
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 09:26

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par Hubert Lambert »

Regarde quel est le proxy utilisé par ton navigateur ou ton système, et modifie les paramètres de LibreOffice en conséquence (menu Outils -> Options -> Internet -> Proxy).

PS. Tu peux vérifier si LibO accède à internet en tentant une mise à jour de tes extensions... si tu en as ;) (menu Outils -> Gestionnaire des extensions).
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 09:26

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par Hubert Lambert »

Je me rends compte - honte à moi - que ma proposition ci-dessus était totalement hors sujet :oops: .
Je joins donc un nouvel exemple, plus à propos.
Celui-ci utilise cette fois l'api Google Maps.
Pour me faire pardonner :
- le code est entièrement en basic
- le code comprends une clé que je laisserai à disposition pendant quelques jours.
Bien cordialement.
Pièces jointes
agraeth.ods
(13.71 Kio) Téléchargé 122 fois
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
agraeth
Membre OOrganisé
Membre OOrganisé
Messages : 51
Inscription : 15 avr. 2014 15:57

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par agraeth »

Bonjour Hubert,

Toujours pas eu le temps de tester chez moi, d'autant moins que LO fait des siennes à la maison suite à ma dernière mise à jour (vérification de LO, puis rien...)

Merci pour ton nouveau fichier, qui me renvoie toujours la même erreur au même endroit (inputstream = sfa.openFileRead(url))...
Sur tes conseils, j'ai consulté les réglages proxy :
- navigateur : adresse de configuration automatique du proxy (http://proxy.infra.nomsoc/proxy.pac)
- LO : serveur proxy = Système
LibreOffice 4.3.7.2.lin04 (non modifiable, version officielle employeur - poste fixe) sous Windows 7 Pro
LibreOffice 6.2.7.1.lin1 (non modifiable, version officielle employeur - poste nomade) sous Windows 10 Pro
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 09:26

Re: [Calc] Récupération d'itinéraire depuis le Web

Message par Hubert Lambert »

Essaie d'identifier, dans le fichier proxy.pac, la ou les adresses qui pourraient correspondre à ton profil ou ton usage et teste-les une à une dans la configuration de LibO, en mettant le mode proxy sur "Manuel".
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Verrouillé