Cours de bourse en direct sur le bureau Mac OSX

Bourse

Depuis quelques temps je cherchais une solution pour afficher les cours de bourses de certains titres sur le  bureau du Mac. Voici le détail de la solution que je viens de mettre en place.

La plus ‘difficile’ a été de trouver un site qui propose les cours de bourse via une page HTML ‘simple’ et via une url d’accès figée, avec le code de l’action. C’est le cas du site http://www.zonebourse.com.

Pour voir le cours du titre GAMELOFT par exemple l’url est la suivante :

http://www.zonebourse.com/GAMELOFT-4755


Dans un premier temps j’ai récupéré tous les codes des actions à surveiller. Ensuite j’ai analysé le code HTML de la page pour trouver la portion de code qui contient la valeur du cours. Pour ce site c’est une ligne TD  :

<td style="padding-bottom:5px" id="zbjsfv_dr" 
   class="fvPrivate colorBlack">16.18
   <meta itemprop="price" content="16.18">
</td>

Voici c’est script PHP (exécuté en mode console) qui fait le travail, il charge la page HTML de chaque action, extrait la ligne en question (TD) à l’aide de Dom et XPath et récupère la valeur avec nodeValue.

#!/usr/bin/php
<?php
error_reporting(0);

#url du site
define('URL',"http://www.zonebourse.com/");

#fonction pour traiter les pages HTML
function getCours($id) {
  $val = 0;
  $f = file_get_contents(URL.$id);
  $dd = new DomDocument();
  $dd->loadHTML($f);
  $content = new DomXPath($dd);
  $ligne = $content->query("//*[contains(@class,'fvPrice colorBlack')]");
  foreach($ligne as $one) {
   $val = $one->nodeValue;
  }
  return $val;
}

#Liste des actions 
$actions = array(
'Natixis '=>'NATIXIS-4673',
'ArtPrice '=>'ARTPRICECOM-5174',
'Worldline '=>'WORLDLINE-16783982',
'Gameloft '=>'GAMELOFT-4755',
'GL Event '=>'GL-EVENTS-5696');

#Var pour stocker les résultats nom + cours
$result = '';

foreach($actions as $nom=>$id) {
  $val = getCours($id) ;
  $result.= "$nom $val\n";
}

#Affichage du résultat
echo $result;

exit;

La dernière étape consiste à créer une GeekLet avec GeekTool pour exécuter le script et afficher le résultat sur le bureau du Mac. Pour ma part j’ai programmé l’exécution toutes les 5mn (300s).

GeekTool-Actions

Pas de Commentaire

Qu'en pensez-vous ?

Votre formulaire contient des erreurs, merci de corriger.