Les données sont téléchargeables via une liste déroulante et j’aimerais récupérer ça automatiquement pour compiler au fil des jours les statistiques et faire de merveilleuses choses avec
<form action="http://clients.rte-france.com/servlets/MixtrServlet?dl=DATAJOURXLS" method="post">
<label style="font-size: 1.3em;">Sélectionnez une date de publication :</label>
<select name="jour" id="dlJour" style="font-size: 1.3em;">
</select>
<input name="dl" value="Télécharger" style="font-size: 1.3em; vertical-align: baseline;" type="submit" />
</form>
c’est un form tout con sur une page externe
donc…
avec un cron, tu utilises en php la librairie cURL, chaque jour tu ouvres la page chez RTE, en post, en mettant la bonne date. Tu sauves le retour dans un fichier zip et tu traites.
Est ce qu’ils ont bloqué les appels extérieurs… c’est possible
Error 500--Internal Server Error
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.5.1 500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request.
En appelant http://clients.rte-france.com/servlets/MixtrServlet?dl=LASTDATE et en jouant rapidement avec la réponse, tu obtiens une liste de toutes les dates disponibles web, mais visiblement on peut remonter plus loin dans le passé (j’ai récupéré des data de 2009 sans problème).
Je n’y connais rien en programmation Web, j’aurais dû prévenir. Je suis sous PC ou Mac.
J’ai bien vu le système de dates (mais pas la commande utilisée par xentyr, c’est pratique) et le seul truc qui me dérange est : comment les récupérer directement les fichiers zip sans devoir passer par le site. Par un exécutable et trois bouts de code, ça serait parfait. Je répète : je ne sais même pas où regarder pour choisir le langage ou les fonctions kivontbien.
Justement, cURL est un programme en ligne de commande qui lance une requete http (ou autre) et qui récupère la réponse du serveur, sans passer par un browser.
Pas exactement : tu es OBLIGE de passer par le site pour recuperer tes fichiers
oui, mais ca sera une interrogation http quand meme, vu que les données sont sur le site. Pour ca, tu peux utiliser wget, comme mentionné par zgoblin, avec un script, ou programmer un truc en java, php, n’importe quel langage qui offre une librairie pour interroger un site web (soit tout les langages aujourd’hui ).
Tu peux aussi regarder du coté des plugins firefox style downthemall, qui offre la possibililté de lancer des téléchargement sur des masques avec variable. Ca pourrait faire l’affaire ici.
Faut exécuter la requête en POST, pas en lien direct comme le proposerait downthemall.
En résumé, tu veux récupérer des données via un site pour les traiter et les intégrer pour en faire des stats, sans savoir programmer. On t’a donné la méthode à suivre reste le code à pisser.
Demande à quelqu’un qui a du temps pour faire ce que tu veux (ie : pas moi) car tous les obstacles techniques ont été levé, c’est l’histoire d’une aprem au pire (le plus long sera le traitement de tes données imho ;))