Page 1 sur 1

Récupérer des valeurs sur le web

Posté : mar. 12 déc. 2017 10:42
par WaSaaa
Bonjour à tous,
Débutant sur raspberry, je cherche à savoir comment récupérer des informations sur des sites internets et les stocker sur le raspberry. En effet, j'ai pour objectif la conception d'un mirroir connecté à l'aide de python et nano sous putty. Je voudrais récupérer des informations provenant d'internet et pouvoir stocker les valeurs de température, de pression, de vitesse du vent, le temps extérieur, l'heure etc... afin de pouvoir les retransmettre sur un écran. Malheureusement, mes compétences en informatique sont faibles mais je souhaite vivement m'améliorer.
Merci beaucoup pour vos réponses.

Re: Récupérer des valeurs sur le web

Posté : mar. 12 déc. 2017 13:03
par Barbedouce
Ils faut que tu révises les lignes de commande en bash :
https://gist.github.com/LeCoupa/122b12050f5fb267e75f

Ce que tu peux faire par exemple, c'est ouvrir une page web ( avec lynx par exemple ), et reconduire la sortie vers un fichier texte.
Dans un second temps, tu ouvres ce fichier texte, et tu travailles sur son contenu pour sélectionner uniquement les infos dont tu as besoin, pour les afficher sur ton miroir.
Un petit exemple :

Code : Tout sélectionner

lynx meteo.fr > fichier.txt ### ici j'enregistre la page d'accueil de meteo.fr dans fichier.txt.
cat fichier.txt | grep temperature ### Ici j'affiche dans le terminal les lignes qui contiennent le mot temperature dans le fichier.txt
cat fichier.txt | grep temperature > temp.txt ### ici j'enregistre cette ligne dans un fichier temp.txt
J’espère défricher un peu tes recherches. Bon courage, n’hésite pas a continuer le sujet. :D

Re: Récupérer des valeurs sur le web

Posté : mar. 12 déc. 2017 13:17
par WaSaaa
Merci beaucoup, je vais essayer dès ce soir. Je suis surpris, cela parais très simple tel que tu l'as écrit. C'est super !

Re: Récupérer des valeurs sur le web

Posté : mar. 12 déc. 2017 14:38
par Barbedouce
Attention par contre, l'outil grep sélectionne une ligne entière. Si tu veux récupérer qu'une partie, il y a d'autres utilitaires plus complexes comme sed ou awk, et la il faudra un peu faire bouger tes neurones au besoin... ;-)
Le code mis en exemple reste très peu optimisé, si tu partage ton code, on pourra certainement l’améliorer ensemble.
Rien ne sert de parcourir tout le fichier, tu peux très bien faire une commande du type :

Code : Tout sélectionner

lynx lesitequetuveux > sed '/cequetuveuxrecuperer/'
Ici, je redirige la sortie de lynx directement dans la commande sed, de manière a ne pas avoir trop de lectures/écritures d'un même fichier, ce qui optimise très largement les exemples plus haut...

Bon courage pour tes tests. :mrgreen:

Re: Récupérer des valeurs sur le web

Posté : mar. 12 déc. 2017 18:29
par domi
Bonjour,

en cherchant sur un moteur de recherche "api meteo" tu trouveras directement des requêtes HTTP qui retourneront des données météo d'un lieu choisi sous forme tableau ou Json.
Souvent ces services demandent un enregistrement afin d'obtenir une clé API, mais ça marche relativement bien.

Tu peux même trouver des API qui retourneront directement une page à mettre dans un "iframe" avec les infos du jour ainsi que les prévisions.
Exemple pour la météo de Paris
Le lien URL de la page est fixe, mais les infos se mettent à jour automatiquement.

Re: Récupérer des valeurs sur le web

Posté : jeu. 14 déc. 2017 10:08
par jelopo
Bonjour,

Personnellement j'utilise l'API de OpenWeatherMap. https://openweathermap.org/api
C'est assez bien documenté sur le site, mais c'est an anglais. Et il faut un peu coder pour extraire les données.

pour info, une fois ton APIKEY générée tu peux passer ce genre de commande

Code : Tout sélectionner

     curl http://api.openweathermap.org/data/2.5/forecast?id=524901&APPID={APIKEY} 

A+

Re: Récupérer des valeurs sur le web

Posté : jeu. 14 déc. 2017 10:26
par WaSaaa
Merci beaucoup pour toutes vos réponses, je me penche sur le sujet dès ce week end.

Re: Récupérer des valeurs sur le web

Posté : jeu. 14 déc. 2017 11:54
par nexen
Bonjour,

Tu as plus 'simple' que lynx : wget ....
Ensuite tu regex ;)

Nexen