Récupérations valeurs sur page web

Bonjour,

je souhaiterais récupérer des valeurs sur une pages web et les stocker dans des variables car elles tournent tous les jours. (GRANDE MOSQUÉE DE PARIS | Mawaqit - Horaire de prière, Mosquée)

J’ai essayer de créer un flux RSS sans succès et je me suis donc toruné vers l’option Script.
Si quelqu’un aurait une idée svp.

Merci

Bonjour @lemak2002
Oui c’est bien avec le plugin script dans la partie HTML que tu doit faire celà.
C’est assez complexe mais tu a un exemple dans la doc :
https://jeedom.github.io/plugin-script/fr_FR/#tocAnchor-1-14

Tu peux utiliser un script php/python pour « scraper » la page et en retirer les valeurs pour les enregistrer ensuite dans des variables jeedom.

1 « J'aime »

Lunarok a fait un plugin pour cela me semble-t-il

Quel est son nom ?

BeautifulSoup ?

1 « J'aime »

Bonjour tu peux aussi voir du côté du script info climat

1 « J'aime »

Merci @olive je bosses dessus mais je débute, j’espère arriver à quelque chose

1 « J'aime »

Bonjour @Sh0n, tu aurais un exemple sur lequel je pourrais me baser stp?

Merci

Bonjour @anon53349806, en effet Lunarok a fait un super boulot avec le plugin Salat que j’utilises depuis des années. Mais là c’est pour mon père qui voudrait récupérer les heures exact de ce site (qui sont différente du plugin).

Merci

1 « J'aime »

Bonjour @ajja17orange,

j’ai checké mais c’est encore trop complexe pour moi lol, évidemment je te remercie et je vais bosser dessus.

Merci

Tu m’a donné envie …
je joue la dessus depuis ce matin.

Quel que ligne de script pour te donner une idée de la simplicité
aprés ca dépend aussi du site

le script qui récupère le nombre d’heures de soleil pour
demain ou un autre jour sur météo blue

#! /usr/bin/env python3
# coding: utf8
import requests
from bs4 import BeautifulSoup
res = requests.get("https://www.meteoblue.com/fr/meteo/semaine/bobigny_france_3032179")
soupe=BeautifulSoup(res.content, "html.parser")
#heures de soleil demain
print(int(soupe.find_all(class_ = "tab_sun")[1].text[62:64]))

il faut bien sur changer la ville au cas ou et le [1]
qui peut prendre
0 aujourd’hui
1 demain
3 j+2
etc …
dans la limite de 0 a 6

1 « J'aime »

Bonjour,

je me suis finalement lancé sur le script, ça réponds mais il me manque du vocabulaire :frowning_face:

Voici la partie du code qui m’intéresse :
Capture d’écran 2020-05-03 à 18.03.50

J’aimerais pouvoir récupérer les heures pour Fajr, Dhuhr, 'Asr, Maghrib et 'Isha.

J’ai réussis à récupérer les noms mais je ne sais quelle commande utiliser pour récupérer les horaires :

Merci pour votre aide :pray:

comme tu a mis div.prayers:name
met div.prayers:time

J’ai mis div.prayers:time, sauvegardé et testé :

Idem, il ne me ressort que les noms

ajoute un div ou 2 div
div.prayer.div.div:time

Je viens d’essayer sans succès :

div.prayers.div.div.div.div:time
div.prayers.div.div.div:time
div.prayers.div.div:time
div.prayers.div:time

J’ai aussi essayé :
div.prayers>div>div:time

j’obtient aussi les noms mais à la suite :

Je sais pas j’ai pas jouer avec le html / script
surement une histoire d’accés au dom mais ca manque d’exemples.
j’ai jouer avec python et la lib bs4 BeautifulSoup.

Merci @olive, je vais continuer à fouiller :ok_hand: :v:

Il y a je pense une petite subtilité avec cette page.
Certaines des données sont remontées par un script et n’apparaissent pas dans le DOM de la page (les balises sont vides avec Beautifulsoup)

Par contre, elles sont dispos dans une des balises script en fin de page, du coup avec un petit script python (certe pas des plus beaux, mais fonctionnel) on obtient bien la liste des heures souhaitées !

#! /usr/bin/env python3
import requests
from bs4 import BeautifulSoup
res = requests.get("https://mawaqit.net/fr/grande-mosquee-de-paris")
soupe=BeautifulSoup(res.content, "html.parser")
time_list = soupe.find_all("script")
times = time_list[2].text.split("times")[1].split("],\"iqama")[0][3:].replace("\"", "").replace(":","h").split(",")
names=["Fajr", "Dhuhr", "`Asr", "Maghrib", "`Isha"]
for i in range(0, len(names)) :
    print(names[i] + " : " + times[i])

Le résultat donne :

Fajr : 04h39
Dhuhr : 13h48
`Asr : 17h49
Maghrib : 21h12
`Isha : 22h41

A adapter et à améliorer mais cela donne une base :wink:

1 « J'aime »

sauf que ca

#! /usr/bin/env python3

ca fonctionne pas dans un plugin script sur un fichier.py

il faut passer par les shell

#!/bin/sh
python3 /chemin/script.py

si non c’est un python2 qui execute …

a moins qu tu ais une autre solution ?