BRVM, BOC et PHP

  • Posted on: 29 July 2012
  • By: mathias

Intéressé par la bourse, je consulte souvent le site de la BRVM.

La Bourse régionale des valeurs Mobilières (BRVM) est une bourse électronique unique pour 8 pays de l'Afrique de l'Ouest. Elle a son siège à Abidjan - Côte d'Ivoire et a démarré ses activités le 16 Septembre 1998.

Pour chaque jour de cotation, la BRVM diffuse sur son site web le Bulletin Officiel de la Côte, communément appelé BOC. Mais voilà impossible d'accéder aux archives du BOC sans débourser
une grosse somme (l'abonnement aux Historiques et Statistiques Boursières est d'un million de CFA minimum par an !)

J'ai donc développé une petite application web pour récupérer les PDF du BOC sur http://mathias.houngbo.net/bourse/?C=M;O=A , l'application a été développer en PHP
avec une librairie HttpClient

/////////////////////////////////////////////////////////////////////////////////////////
//  Auteur : Mathias HOUNGBO mathias at houngbo dot net
// GPL Licence
///////////////////////////////////////////////////////////////////////////////////////////
include('HttpClient.class.php');
$client = new HttpClient('www.brvm.org');
 
$client->setUserAgent('Mozilla/5.0 (Windows; U; Windows NT 6.1; fr-FR; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)');
 
if (!$client->get('/Default.aspx?language=fr-FR')) {
    die('An error occurred: '.$client->getError());
}
 
$pageContents = $client->getContent();
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>Bulletin du (.*)<\/a>";
 
if(preg_match_all("/$regexp/siU", $pageContents, $matches)) {
 
   if (!$client->get(urldecode($matches[2][0]))) {
    die('An error occurred: '.$client->getError());
   }
 
   $PDFContents = $client->getContent();
   $fp = fopen($matches[3][0] . '.PDF', 'w');
   fwrite($fp, $PDFContents);
   fclose($fp);
}

Les archives BOC sont disponible à partir du 25 Septembre 2009. et j'ai suffisamment de place pour conservé 5 ans de BOC :).

Bon download à tous.

Add new comment

Plain text

  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>. The supported tag styles are: <foo>, [foo].
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.