Bonjour,
J'essaie de faire un programme pour aller télécharger des coefficients de marée sur le site https://maree.info/78? pour l'année. Les coefficients sont disponibles pour les douze prochains mois.
L'ensemble des coefficients de l'année n'est pas accessible sur une seule page, elles sont affichées semaine par semaine. Il faudra donc que je fasse une boucle semaine par semaine et accéder au site en renseignant le jour dans l'adresse https://maree.info/78?d=20230927
Il faudra ensuite que je lance le script en cron tous les 1er du mois pour aller récupérer le mois de l'année d'après qui sera débloqué.
La page ressemble à ça:
Les données qui m'intéressent sont celles de la colonne de droite " Dates Heures Hauteur Coeff"
J'ai essayé plusieurs techniques en shell (avec w3m et curl) et en python avec la librairie requests mais sans vrai succès, je récupère des données mais n'arrive pas à en extraire celles données qui m'intéressent.
Dans l'idéal je souhaiterai faire le script en python dans lequel je ferai une boucle sur l'année, semaine par semaine ou jour par jour et écrire les données dans un fichier texte avec la librairie pandas.
Je pensais concaténer les anciennes données et les nouvelles données avec panda.concat et supprimer les doublons s'il y en a entre les données historiques (déjà téléchargées et lues dans un fichier csv : data_hist.csv) et les nouvelles (nouvellement téléchargées: data_dl) avec drop_duplicates des objets pandas.
D=pd.concat([data_hist,data_dl]).drop_duplicates()
Puis écrire le fichier résultat dans le csv data_hist.csv
Je pensais faire la boucle sur les jours en incrémentant les jours avec datetime.timedelta, écrire le fichier au format texte (avec pandas) ça je sais faire, mais c'est sur la partie extraction des données de la page web que je sèche…
Auriez-vous des idées ?
Merci beaucoup !
Fanch
# Quelques pistes
Posté par LeBouquetin (site web personnel, Mastodon) . Évalué à 8. Dernière modification le 27 septembre 2023 à 07:12.
Il faut que tu récupères le HTML puis que tu exécutes des opérations de sélection HTML (ça ressemble un peu à des requêtes xpath mais à un peu plus haut niveau).
Un tutoriel sur le scraping : https://www.ionos.fr/digitalguide/sites-internet/developpement-web/web-scraping-avec-python/
Requests ou curl, c'est juste la première étape.
Conseils complémentaires (inutile ?) :
CSV est un format standard en python, tu peux lire un fichier et le transformer en liste et dictionnaires python en 2/3 lignes donc c'est pas une étape douloureuse de passer par des fichiers intermédiaires.
Regarde l'exemple utilisant BeautifulSoup dans le lien ci-dessus, ça devrait te parler.
# le debut
Posté par NeoX . Évalué à 7.
1°) ouvrir la page avec ton navigateur
2°) afficher le code de la page (Ctrl+U sur mozzilla)
3°) Chercher l'info dans la page de code (Ctrl+F)
ca nous dit par exemple que le tableau de la semaine est dans le code
apres pour ton script tu l'extrait comme tu veux, à la main en traitant cette partie la de la page HTML, via des outils plus haut niveau qui peuvent aller prendre le contenu d'une DIV, ou d'une TABLE
# API
Posté par Sacha Trémoureux (site web personnel) . Évalué à 10.
Avant de scrapper, c’est toujours utile de regarder si y’a des API dispos pour rendre le truc plus fiable. Et ça a l’air dispo !
…c’est juste 8400€.
https://diffusion.shom.fr/ptpproduct/product/subscribe/id/248
Désolé pour l’inutilité du commentaire.
[^] # Re: API, ... on oublie
Posté par Luc-Skywalker . Évalué à 7.
Ce commentaire est peut être inutile, mais il est néanmoins très pertinent:
Tout comme Météo France, le SHOM, organisme public financé par nos impôts, vend ses données à prix d'or.
Il est ou l'Open Data avec lequel on nous bassine depuis quelques années ?
"Si tous les cons volaient, il ferait nuit" F. Dard
[^] # Re: API, ... on oublie
Posté par BAud (site web personnel) . Évalué à 4.
n'étant pas un fervent défenseur du SHOM ni de l'IGN (ni de météo france d'ailleurs), je vais tout de même nuancer.
j'avais tenté au siècle dernier d'utiliser des données du SHOM, peine perdue hormis leurs contrats hors de prix…
vers 2010 quand j'avais regardé, ça s'était à peine amélioré…
en revanche depuis ~2020 ça s'est un peu amélioré (avec des contributions à geoportail notamment).
là : https://www.data.gouv.fr/fr/organizations/shom/ mais pas forcément ce qui est attendu…
pour une API, regarder comment les applis (non libres mais souvent gratuites) procèdent :
cf. par exemple https://www.cnetfrance.fr/produits/applications-horaires-marees-39816652.htm
ne pas (trop) regarder les simulateurs de marée qui se basent plutôt sur des calculs théoriques et non des points de mesure précis + corrections de courbes théoriques.
# a une époque ou j'ai dû faire ça ...
Posté par totof2000 . Évalué à 2. Dernière modification le 27 septembre 2023 à 12:22.
je l'ai fait en Ruby avec nokogiri.
Bien plus efficace que tout ce que j'avais pu trouver en Python ou en shell à l'époque.
Après ça dépend buen sûr de la façon dont le document HTML. Comme dit plus haut, en allant voir le code source tu retrouves la page, il reste donc à parcourir le document pour récupérer les infos.
# Attention ... lisez les CGU des sites avant de dire que vous allez faire un truc interdit !
Posté par rycks . Évalué à 6.
C'est pas très malin de détailler ainsi ton projet … je ne peux que te dire que c'est tout simplement interdit !
Je cite entre autre, https://maree.info/cgu "Utilisation du site et des données qui y sont publiées"
eric.linuxfr@sud-ouest.org
[^] # Re: Attention ... lisez les CGU des sites avant de dire que vous allez faire un truc interdit !
Posté par BAud (site web personnel) . Évalué à 6.
leur clause est léonine…
[^] # Re: Attention ... lisez les CGU des sites avant de dire que vous allez faire un truc interdit !
Posté par totof2000 . Évalué à 5.
Je pense que tant que les données ne sont pas diffusées vers autre chose, et que l'automatisma reste un truc perso (ou à faible diffusion come association locale qui aurait besoin des infos), la claiuse est abusive.
Ce serait différent à mon avis si les données sont scrappées pour alimenter une base à large diffusion.
[^] # Re: Attention ... lisez les CGU des sites avant de dire que vous allez faire un truc interdit !
Posté par Luc-Skywalker . Évalué à 2.
Je suis bien d'accord.
Pour avoir déjà eu avoir à pratiquer par le passé à ce "genre de choses" au bénéfice d'une diffusion somme toute "assez confidentielle", je suis bien content d'avoir pu passer au travers de ces "clauses abusives".
Après, on ne connaît pas quelles sont les intentions de Fanch29 ;-)
PS: Les guillemets sont là pour ratisser large
"Si tous les cons volaient, il ferait nuit" F. Dard
[^] # Re: Attention ... lisez les CGU des sites avant de dire que vous allez faire un truc interdit !
Posté par Fanch29 . Évalué à 2.
C'était plus pour l'exercice qu'autre chose, j'ai déjà leur CD de prédiction des marées SHOMAR et j'ai des contacts chez eux si j'ai besoin.
Je vais me renseigner auprès d'eux.
Merci pour les infos.
[^] # Re: Attention ... lisez les CGU des sites avant de dire que vous allez faire un truc interdit !
Posté par Sacha Trémoureux (site web personnel) . Évalué à 4.
Si tu peux leur demander de rendre l’argent
de nos impôtsça ferait des heureux.[^] # Re: Attention ... lisez les CGU des sites avant de dire que vous allez faire un truc interdit !
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 3. Dernière modification le 27 septembre 2023 à 21:02.
Ça tombe bien, c'est ce que veut faire le script (en tout cas je ne vois pas vraiment de différence) : une consultation finale quotidienne avec recopie d'une valeur présente sur la page. À moins que prendre note de ce qu'il y a sur la page ou même consulter la page soit contraire aux conditions ? C'est abusé et certainement illégal tout ce verbiage.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# Pas forcément autorisé
Posté par gUI (Mastodon) . Évalué à 5.
Tu fais ce que tu veux, mais les CGUs du site ont l'air de t'interdire ce que tu veux en faire.
Faut les comprendre, il payent l'API de SHOM, c'est 4200€ par an, c'est pas pour qu'un script avec un
cron
leur repique les infos.En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Pas forcément autorisé
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Ah ouais ? Je ne les ai pas compris comme ça… :s
Y des juristes dans la place pour nous éclairer ?
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Pas forcément autorisé
Posté par Luc-Skywalker . Évalué à 5.
J'irais défendre auprès du Conseil d'État
… mais bon, je ne le fais pas :)
"Si tous les cons volaient, il ferait nuit" F. Dard
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.