15-11-2008, 08:19 PM
Je pense qu'il existe plusieurs solutions.
La plus simple est de trouver un site qui utilise un flux RSS ou une api pour indiquer les cours de la bourse ; dans ce cas, il suffit d'utiliser leur api pour récupérer les cours.
Sinon, une autre solution est basée sur l'html. Prenons par exemple les cours du site des échos : ici pour le CAC40 par exemple.
En observant la source html de la page, on note qu'elle est de cette forme :
Bla bla de départ
Liste des cours
Bla bla bla de fin.
Ce qui va nous interesser va être de récupérer la liste des cours. Bon, pour récupérer la page elle-même, si ton hébergeur accepte php5, rien de plus simple :
La plus simple est de trouver un site qui utilise un flux RSS ou une api pour indiquer les cours de la bourse ; dans ce cas, il suffit d'utiliser leur api pour récupérer les cours.
Sinon, une autre solution est basée sur l'html. Prenons par exemple les cours du site des échos : ici pour le CAC40 par exemple.
En observant la source html de la page, on note qu'elle est de cette forme :
Bla bla de départ
Liste des cours
Bla bla bla de fin.
Ce qui va nous interesser va être de récupérer la liste des cours. Bon, pour récupérer la page elle-même, si ton hébergeur accepte php5, rien de plus simple :
Code PHP :
<?php
$code = file_get_contents('http://bourse.lesechos.fr/bourse/indices/composition.jsp?Code=FR0003500008&Place=00025-TR&Codif=ISI');
?>
Maintenant il va nous falloir trouver toutes les valeurs bourières. On va s'occuper ici de leur nom et de leur dernier indice, mais l'idée est exactement la même pour le reste.
D'abord, définissons clairement ce qu'on cherche. Le nom est une suite de chiffres, lettres, tirets et apostrophes simples. La valeur, des chiffres avec une virgule.
En étudiant dans ce cas précis le code html, on note que le tableau qui affiche ces valeurs est de cette forme :
Citation : <tr class="TABLEAU-DATA-11" onclick="javascript:document.location='/bourse/cours.jsp?Code=FR0000120404&Place=00025-TR&Codif=ISI';" style="cursor: pointer;">
<td align="left" nowrap="nowrap"> <a target="_top" href="/bourse/cours.jsp?Code=FR0000120404&Place=00025-TR&Codif=ISI"><b><script>writeUpper("NOM DE LA VALEUR");</script>NOM DE LA VALEUR</b></a></td>
<td nowrap="nowrap"><b>INDICE </b></td>
Suivi d'une suite de trucs qui ne nous interessent pas. Ci-dessus, en gras les choses qui nous interessent, en italique les choses variables. Notez que le Place est surement variable aussi, mais il est fixe pour une même url. A vous d'étudier plus en détails ensuite.
Donc, première chose, afin d'avoir des expressions régulières plus simples ensuite, on va virer tous les espaces en trop. C'est pas forcément nécessaire, mais ça évitera d'avoir à s'en soucier ensuite.
Code PHP :
<?php
$code = file_get_contents('http://bourse.lesechos.fr/bourse/indices/composition.jsp?Code=FR0003500008&Place=00025-TR&Codif=ISI');
$code = preg_replace('/\s\s+/', ' ', $code);
?>