Créer un script
geek974
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, c'est mon premier message que je poste sur un forum, je suis tout nouveau dans le monde de la programmation.
Je suis actuellement en stage dans une société de météo, et je doit faire un script qui me permettrait de récupérer des données en temps réel d'un site.
http://candhis.cetmef.developpement-durable.gouv.fr/carte/
Nous avons des bouées, et je dois récupérer les données qui sont dans le tableau pour toutes les bouées, et il faut que je parse la date, le H1/3, Hmax, Th1/3, et la température de mer.
Je ne sais pas trop comment m'y prendre, grace a la commande wget j'ai le code source de la page, mais comment faire un programme/script qui recupere les données les parse et l'enregistre dans un autre fichier ?
Si quelqu'un peut m'aider svp.
Coordialement Geek974.
Je suis actuellement en stage dans une société de météo, et je doit faire un script qui me permettrait de récupérer des données en temps réel d'un site.
http://candhis.cetmef.developpement-durable.gouv.fr/carte/
Nous avons des bouées, et je dois récupérer les données qui sont dans le tableau pour toutes les bouées, et il faut que je parse la date, le H1/3, Hmax, Th1/3, et la température de mer.
Je ne sais pas trop comment m'y prendre, grace a la commande wget j'ai le code source de la page, mais comment faire un programme/script qui recupere les données les parse et l'enregistre dans un autre fichier ?
Si quelqu'un peut m'aider svp.
Coordialement Geek974.
A voir également:
- Créer un script
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un lien pour partager des photos - Guide
- Créer un compte gmail - Guide
- Créer un compte instagram sur google - Guide
7 réponses
À mon avis il faut faire un petit script par exemple en python ou en ruby qui va permettre de récupérer les morceaux qui t'intéressent (cherche par exemple des exemples sur google "python parser html") il y en a plein :-)
https://python.developpez.com/faq/?page=Web
Bonne chance
https://python.developpez.com/faq/?page=Web
Bonne chance
Merci pour ta réponse ^^
Le python, je n'y connais rien. Mon tuteur ma conseilleur pour parser d'y aller en C
Mais j'croyais qu'on pouvait dans un script inscrire des commandes ?
J'ai pensé à faire un script incluant les commandes wget, pour chacune des bouées ?
Cque j'obtient je fait un gedit lien & pour avoir le code source et puis parser...
Et mettre le tout dans un autre fichier .text
Le python, je n'y connais rien. Mon tuteur ma conseilleur pour parser d'y aller en C
Mais j'croyais qu'on pouvait dans un script inscrire des commandes ?
J'ai pensé à faire un script incluant les commandes wget, pour chacune des bouées ?
Cque j'obtient je fait un gedit lien & pour avoir le code source et puis parser...
Et mettre le tout dans un autre fichier .text
En C pour parser une page web tu vas juste mourir de désespoir (et c'est quelqu'un qui connaît bien le C qui te dit ça !). C'est évidemment faisable mais c'est bien plus compliqué, car tu devras te familiariser avec une libraire genre libxml2 etc..., là ou le parsing serait mille fois plus simple en python.
Pour le fait de n'y rien connaître en python, honnêtement c'est un langage très simple. Si tu as déjà développer tu ne devrais pas bloquer (lis par exemple un tutoriel pour apprendre les bases). Avec python tu peux faire l'équivalent de ton wget et charger le contenu xml dans une structure calquée sur la structure de l'arbre xml.
Pour l'histoire du script en wget, c'est aussi faisable, mais en shell tu vas galérer pour parser un contenu xml.
Après tu fais comme tu le sens :-)
Pour le fait de n'y rien connaître en python, honnêtement c'est un langage très simple. Si tu as déjà développer tu ne devrais pas bloquer (lis par exemple un tutoriel pour apprendre les bases). Avec python tu peux faire l'équivalent de ton wget et charger le contenu xml dans une structure calquée sur la structure de l'arbre xml.
Pour l'histoire du script en wget, c'est aussi faisable, mais en shell tu vas galérer pour parser un contenu xml.
Après tu fais comme tu le sens :-)
hello
un début
on récupère les codes de chaque bouée dans la page principale et on fabrique les URLs
problème: c'est du Javascript (je crois) qui affiche les données, donc les wget ne récupèrent rien, là je ne sais plus
un début
on récupère les codes de chaque bouée dans la page principale et on fabrique les URLs
$ wget -O url -o log http://candhis.cetmef.developpement-durable.gouv.fr/carte/ $ $ awk -F "=|>|<|-" '/value.*-/ {gsub("'\''", "", $3) ; print "wget -O url" ++f " -o log http://candhis.cetmef.developpement-durable.gouv.fr/campagne/?idcampagne=]" $3}' url wget -O url1 -o log http://candhis.cetmef.developpement-durable.gouv.fr/campagne/?idcampagne=c4ca4238a0b923820dcc509a6f75849b wget -O url2 -o log http://candhis.cetmef.developpement-durable.gouv.fr/campagne/?idcampagne=c81e728d9d4c2f636f067f89cc14862c wget -O url3 -o log http://candhis.cetmef.developpement-durable.gouv.fr/campagne/?idcampagne=eccbc87e4b5ce2fe28308fd9f2a7baf3 ...........
problème: c'est du Javascript (je crois) qui affiche les données, donc les wget ne récupèrent rien, là je ne sais plus
Salut,
problème: c'est du Javascript (je crois) qui affiche les données, donc les wget ne récupèrent rien, là je ne sais plus
En fouinant un peu on peut s'apercevoir que la page obtenue via javascript rajoute "inc-tempsreel.php" dans l'url, donc avec :
http://candhis.cetmef.developpement-durable.gouv.fr/campagne/inc-tempsreel.php?idcampagne=c4ca4238a0b923820dcc509a6f75849b
et en donnant le tout à parser à w3m + grep (on filtre sur la date) on obtient par exemple pour la dernière (qui est la 1ère en fait) valeur pour Nice :
Reste plus qu'à récupérer les valeurs souhaitées et les envoyer dans un fichier...
;-))
problème: c'est du Javascript (je crois) qui affiche les données, donc les wget ne récupèrent rien, là je ne sais plus
En fouinant un peu on peut s'apercevoir que la page obtenue via javascript rajoute "inc-tempsreel.php" dans l'url, donc avec :
http://candhis.cetmef.developpement-durable.gouv.fr/campagne/inc-tempsreel.php?idcampagne=c4ca4238a0b923820dcc509a6f75849b
et en donnant le tout à parser à w3m + grep (on filtre sur la date) on obtient par exemple pour la dernière (qui est la 1ère en fait) valeur pour Nice :
$ wget -q -O- http://candhis.cetmef.developpement-durable.gouv.fr/campagne/inc-tempsreel.php?idcampagne=c4ca4238a0b923820dcc509a6f75849b | w3m -dump -T text/html | grep -m 1 '10/07/2012' ? 10/07/2012 15:00 ? 0.2 ? 0.4 ? 3.6 ? 140 ? 47 ? 26.1 ? $
Reste plus qu'à récupérer les valeurs souhaitées et les envoyer dans un fichier...
;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
effectivement, bien vu
donc :
$ head Anglet
Liste des dernières mesures Temps Réel de la campagne 06402 - Anglet
????????????????????????????????????????????????????????????????????????????????????????????
? Date et heure ? H1/3 ? Hmax ? Th1/3 ? Dir au ? Etalement ? Température ?
? (T.U.) ? (mètres) ? (mètres) ? (secondes) ? pic ? au pic ? mer ?
? ? ? ? ? (degrés) ? (degrés) ? (degrés C) ?
????????????????????????????????????????????????????????????????????????????????????????????
? 11/07/2012 08:00 ? 0.7 ? 1.5 ? 5.1 ? 308 ? 29 ? 19.3 ?
????????????????????????????????????????????????????????????????????????????????????????????
? 11/07/2012 07:30 ? 0.6 ? 1.1 ? 5.0 ? 305 ? 21 ? 19.4 ?
????????????????????????????????????????????????????????????????????????????????????????????
$
CCM n'aime pas les caractères semi-graphiques, remplacés par ?
donc :
$ cat x #!/bin/bash wget -O url -o log http://candhis.cetmef.developpement-durable.gouv.fr/carte/ awk -F "=|>|<| - " '/value.*-/ {gsub("'\''", "", $3) ; sub("^ ", "", $5) ; gsub("[ '\'']", "-", $5); n[$5]++ ; if(n[$5]>1)$5=$5 sprintf("%d", ++a) ; print "wget -O - -o log http://candhis.cetmef.developpement-durable.gouv.fr/campagne/inc-tempsreel.php?idcampagne=" $3 " | w3m -dump -T text/html > " $5}' url $ $ ./x | sh $
$ head Anglet
Liste des dernières mesures Temps Réel de la campagne 06402 - Anglet
????????????????????????????????????????????????????????????????????????????????????????????
? Date et heure ? H1/3 ? Hmax ? Th1/3 ? Dir au ? Etalement ? Température ?
? (T.U.) ? (mètres) ? (mètres) ? (secondes) ? pic ? au pic ? mer ?
? ? ? ? ? (degrés) ? (degrés) ? (degrés C) ?
????????????????????????????????????????????????????????????????????????????????????????????
? 11/07/2012 08:00 ? 0.7 ? 1.5 ? 5.1 ? 308 ? 29 ? 19.3 ?
????????????????????????????????????????????????????????????????????????????????????????????
? 11/07/2012 07:30 ? 0.6 ? 1.1 ? 5.0 ? 305 ? 21 ? 19.4 ?
????????????????????????????????????????????????????????????????????????????????????????????
$
CCM n'aime pas les caractères semi-graphiques, remplacés par ?
on a pas besoin du deuxième wget, w3m suffit
#!/bin/bash wget -O url -o log http://candhis.cetmef.developpement-durable.gouv.fr/carte/ awk -F "=|>|<| - " '/value.*-/ {gsub("'\''", "", $3) ; sub("^ ", "", $5) ; gsub("[() '\'']", "-", $5); n[$5]++ ; if(n[$5]>1)$5=$5 sprintf("%d", ++a) ; print "w3m -dump -T text/html http://candhis.cetmef.developpement-durable.gouv.fr/campagne/inc-tempsreel.php?idcampagne=" $3 " > " $5}' url
pour ne récupérer que du texte (mais on perd les accents)
$ iconv -c -f utf-8 -t ascii Nice | sed '/^$/d' Liste des dernires mesures Temps Rel de la campagne 00601 - Nice Date et heure H1/3 Hmax Th1/3 Dir au Etalement Temprature (T.U.) (mtres) (mtres) (secondes) pic au pic mer (degrs) (degrs) (degrs C) 11/07/2012 08:00 0.3 0.6 4.3 186 39 25.7 11/07/2012 07:30 0.3 0.6 4.4 199 30 25.7 11/07/2012 07:00 0.3 0.5 4.5 203 32 25.6 11/07/2012 06:30 0.4 0.6 4.5 202 29 25.7 11/07/2012 06:00 0.4 0.7 4.7 202 17 25.7 11/07/2012 05:30 0.4 0.7 5.0 198 30 25.7