Python dans un bloc code de scenario exemple: vitesse du vent meteoblue

Le fichier script Python est généré directement depuis le bloc code du scenario :innocent:

L’exemple récupère la vitesse du vent actuel sur Météoblue
prérequis :
cet exemple nécéssite l’installation de la librairie BeautifulSoup, en ssh faire : pip3 install bs4
changer le lieu en modifiant :

https://www.meteoblue.com/fr/meteo/semaine/villecresnes_france_2968823

(Ce n’est qu’un exemple n’importe quel script python peut s’inscrire entre <<<'EOD et EOD;

Le bloc code :

$script = 'monpython.py';        //Nom du fichier python
$chemin = '/var/www/html/python'; // Dossier à utiliser

if (1){ //metre à 1 la 1er fois, une fois que le fichier existe et n'est plus modifier mettre a 0
// Script python
$python = <<<'EOD'
#! /usr/bin/env python3
import requests
from sys import argv
from bs4 import BeautifulSoup
res = requests.get("https://www.meteoblue.com/fr/meteo/semaine/villecresnes_france_2968823")
soupe=BeautifulSoup(res.content, "html.parser")
print(soupe.find_all(class_ ="current_description")[0].span.next.next.next.next.split()[0],end='')
#fin du script python3
EOD;
mkdir($chemin); // creation du dossier
file_put_contents($chemin.'/'.$script, $python); // Ecriture du fichier
}

$reponse = shell_exec('python3 '.$chemin.'/'.$script);  // execution du script 
$scenario->setLog('Vitesse du vent  : '.$reponse.' Kmh'); // recuperation des paramètres de retour du script 

// cet exemple nécéssite l'installation de la librairie BeautifulSoup, en ssh faire : pip3 install bs4

Le résultat est juste mis dans le log du scenario
a vous de l’exploiter dans un ou des tag’s selon votre propre script

[2021-03-15 16:52:53][SCENARIO] Start : Scenario lance manuellement.
[2021-03-15 16:52:53][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-03-15 16:52:53][SCENARIO] Exécution d'un bloc code
[2021-03-15 16:52:54][SCENARIO] Vitesse du vent  : 28 Kmh
[2021-03-15 16:52:54][SCENARIO] Fin correcte du scénario

Mise en tag pour cet exemple, ajouter a la fin du bloc code

$tags['#reponse#'] = $reponse;
$scenario->setTags($tags);

Amusez-vous bien !

5 « J'aime »