Skip to main content

Python library to scrape financial data from Casablanca Stock Exchange(Bourse des Valeurs de Casablanca)

Project description

BVCscrap

BVCscrap is a Python library to retrieve data from LeBoursier.ma, which provides data retrieval from up to 74 stocks. BVCscrap allows the user to download historical and intraday data from all the shares traded at Casablanca Stock Exchange.

Requirements

In order to use BVCscrap you should download the following packages: requests, beautifulsoup4, lxml, json, and datetime.

The outputs of this library are DataFrames, so Pandas should be installed

Installation

pip install BVCscrap
import BVCscrap as load

Usage

To use this libary there is a notation to respect: names of stocks.

Get the notation

import BVCscrap  as load
load.notation()
['Addoha',
 'AFMA',
 'Afric Indus',
 'Afriquia Gaz',
 'Agma',
 'Alliances',
 'Aluminium Maroc',
 'ATLANTASANAD',
 'Attijariwafa',

Data of one single stock

To get data from date 0 (The data is provided from Septembre 2016)

import BVCscrap  as load
data=load.loadata('BCP')
data.tail()
             Value	  Low	   High	  Variation(%)	Volume
   date                                  
22/09/2021	271.00	 269.60	  271.00	0.00		52908
23/09/2021	272.60	 271.00	  273.00	0.59		37230
24/09/2021	276.00	 271.00	  278.00	1.25		162109
27/09/2021	275.00	 272.05	  276.95   -0.36		51533
28/09/2021	276.05	 272.70	  276.05	0.38		17676

You can get data between two periods :

data=load.loadata('CIH',start='2018-01-01',end='2019-01-01')
data
	       Value	Low	    High Variation (%)	Volume
date					
02/01/2018	278.0	278.00	279.5	-2.80	312
03/01/2018	278.0	278.00	279.5	0.00	312
...	...	...	...	...	...
28/12/2018	294.0	294.00	301.0	-2.00	211865
31/12/2018	300.0	300.00	300.0	2.04	12

Data of many stocks

import BVCscrap  as load
load.loadmany('BCP','CIH')
data.tail()
             BCP     CIH
22/09/2021	271.00	301.0
23/09/2021	272.60	305.0
24/09/2021	276.00	313.0
27/09/2021	275.00	310.0
28/09/2021	276.05	305.8

You can use start and end arguments :

load.loadmany('BCP','CIH',start='2018-01-01',end='2019-01-01')
data.tail()
	         BCP	CIH
date		
02/01/2018	293.0	278.0
03/01/2018	289.9	278.0
04/01/2018	285.3	280.8
05/01/2018	283.0	280.8
08/01/2018	285.4	280.8
...	...	...
25/12/2018	279.0	294.2
26/12/2018	277.0	296.0
27/12/2018	279.9	300.0
28/12/2018	280.0	294.0
31/12/2018	280.0	300.0

Intraday data

import BVCscrap  as load
data=load.getIntraday('MASI')
data
 	 Value
09:30	12899.66
09:31	12900.10
09:32	12900.60
09:34	12900.45
09:35	12901.24
...	...
15:12	12975.64
15:14	12976.79
15:17	12976.69
15:18	12978.58
15:30	13019.20

Getting Help

If you are working in Jupyter notebook/lab, you can see the docstring of our functions by using Shift+Tab. An example is shown below

"""
	Load Data 
	Inputs: 
			Input   | Type                             | Description
			=================================================================================
			 name   |string                            | You must respect the notation. To see the notation see BVCscrap.notation
	                 start  |string "YYYY-MM-DD"               | starting date Must respect the notation
	                 end    |string "YYYY-MM-DD"               | Must respect the notation
	Outputs:
	                 Output | Type                             | Description
	                ================================================================================= 
	     	                | pandas.DataFrame (4 columns)     | close high low open vol
"""

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

BVCscrap-0.1.3.tar.gz (6.1 kB view hashes)

Uploaded Source

Built Distribution

BVCscrap-0.1.3-py3-none-any.whl (6.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page