Skip to content

Instantly share code, notes, and snippets.

@Vido
Created June 10, 2020 22:30
Show Gist options
  • Save Vido/cbc33862dd27a22790df633f1d113ae6 to your computer and use it in GitHub Desktop.
Save Vido/cbc33862dd27a22790df633f1d113ae6 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Pegando DRE do repositório da CVM\n",
"\n",
"Primeiramente devemos acessar o repositório da CVM:\n",
"\n",
"http://dados.cvm.gov.br/dados/\n",
"\n",
"Outra maneira de ser acessar estes dados é no rad.cvm.gov.br. Este sistema é capaz de buscar as informações e apresentá-las de maneira organizada. Porém ele não é muito simples para se fazer um webscrapping. Por isso optamos por importar os dados via CSV.\n",
"\n",
"https://www.rad.cvm.gov.br/ENET/frmConsultaExternaCVM.aspx\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Vamos lá!\n",
"\n",
"O primeiro passo é fazer o download dos ZIPs que contêm as DRE no formato CSV."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Arquivio: dre_cia_aberta_2010.zip\n",
"Download...\n",
"Unzip...\n",
"Arquivio: dre_cia_aberta_2011.zip\n",
"Download...\n",
"Unzip...\n",
"Arquivio: dre_cia_aberta_2012.zip\n",
"Download...\n",
"Unzip...\n",
"Arquivio: dre_cia_aberta_2013.zip\n",
"Download...\n",
"Unzip...\n",
"Arquivio: dre_cia_aberta_2014.zip\n",
"Download...\n",
"Unzip...\n",
"Arquivio: dre_cia_aberta_2015.zip\n",
"Download...\n",
"Unzip...\n",
"Arquivio: dre_cia_aberta_2016.zip\n",
"Download...\n",
"Unzip...\n",
"Arquivio: dre_cia_aberta_2017.zip\n",
"Download...\n",
"Unzip...\n",
"Arquivio: dre_cia_aberta_2018.zip\n",
"Download...\n",
"Unzip...\n",
"Arquivio: dre_cia_aberta_2019.zip\n",
"Download...\n",
"Unzip...\n"
]
}
],
"source": [
"import requests\n",
"import zipfile\n",
"\n",
"def download():\n",
" cvmzip_list = [\n",
" 'dre_cia_aberta_%d.zip' % y for y in range(2010, 2020)\n",
" ]\n",
"\n",
" base_url = 'http://dados.cvm.gov.br/dados/CIA_ABERTA/DOC/DFP/DRE/DADOS/'\n",
"\n",
" for cvmzip in cvmzip_list:\n",
" print('Arquivio:', cvmzip)\n",
" response = requests.get(base_url + cvmzip)\n",
" with open(cvmzip, 'wb') as fp:\n",
" print('Download...')\n",
" fp.write(response.content)\n",
"\n",
" with zipfile.ZipFile(cvmzip, 'r') as zip_ref:\n",
" print('Unzip...')\n",
" zip_ref.extractall()\n",
" \n",
"download()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Carregar os dados\n",
"\n",
"Agora devemos carregar os dados. Podemos fazer de muitas formas, inclusive podemos usar o Pandas\n",
"\n",
"Porém, eu procurei usar o Python 'vanilla'.\n",
"##### Atenção: Cuidado com o encoding dos arquivos."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processando: dre_cia_aberta_con_2010.csv\n",
"Processando: dre_cia_aberta_con_2011.csv\n",
"Processando: dre_cia_aberta_con_2012.csv\n",
"Processando: dre_cia_aberta_con_2013.csv\n",
"Processando: dre_cia_aberta_con_2014.csv\n",
"Processando: dre_cia_aberta_con_2015.csv\n",
"Processando: dre_cia_aberta_con_2016.csv\n",
"Processando: dre_cia_aberta_con_2017.csv\n",
"Processando: dre_cia_aberta_con_2018.csv\n",
"Processando: dre_cia_aberta_con_2019.csv\n"
]
}
],
"source": [
"import csv\n",
"from collections import defaultdict\n",
"from dateutil import parser as du_parser\n",
"\n",
"\n",
"def carrega_dados():\n",
"\n",
" # Estrutura para carregar os dados\n",
" # Empresa -> Categoria -> Ano do Exercício\n",
" dados = defaultdict(lambda: defaultdict(dict))\n",
"\n",
" cvm_csv_list = [\n",
" 'dre_cia_aberta_con_%d.csv' % y for y in range(2010, 2020)\n",
" ]\n",
"\n",
" for cvm_csv in cvm_csv_list:\n",
" \n",
" print('Processando:', cvm_csv)\n",
" with open(cvm_csv, encoding='iso-8859-1') as fp:\n",
"\n",
" next(fp) # Pula o header\n",
" csv_reader = csv.reader(fp, delimiter=';')\n",
"\n",
" for row in csv_reader:\n",
" empresa = row[3]\n",
" ref = (du_parser.parse(row[9]), du_parser.parse(row[10]))\n",
" categoria = (row[11], row[12])\n",
" valor = float(row[13])\n",
"\n",
" dados[empresa][categoria][ref] = valor\n",
"\n",
" return dados\n",
"\n",
"dados = carrega_dados()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Visualizar\n",
"\n",
"Para concluir nosso exemplo, vamos criar um gráfico que mistura informação de balanço (provenientes da CVM)\n",
"e informações sobre cotações (provenientes da Yahoo, no caso.)\n",
"\n",
"Neste exemplo vamos usar a empresa WEG:\n",
"https://ri.weg.net/\n",
"\n",
"#### Atenção: Nem a CVM nem a yfinance usam o código de negociação das B3."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[*********************100%***********************] 1 of 1 completed\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"import yfinance as yf\n",
"import matplotlib.pyplot as pyplot\n",
"\n",
"def pega_cotacoes(tickers):\n",
" return yf.download(\n",
" tickers = tickers,\n",
" start=\"2010-01-01\", end=\"2019-12-31\",\n",
" interval = \"1mo\",\n",
" group_by = 'ticker',\n",
" )\n",
"\n",
"\n",
"cotacoes = pega_cotacoes('WEGE3.SA')\n",
"\n",
"# trata o formato\n",
"q = cotacoes['Close'].dropna()\n",
"b = {\n",
" k[1]: v / 100000\n",
" for k, v in \n",
" dados['WEG S.A.'][('3.11', 'Lucro/Prejuízo Consolidado do Período')].items()\n",
" }\n",
"\n",
"pyplot.plot(q)\n",
"pyplot.plot(list(b.keys()), list(b.values()))\n",
"pyplot.title('WEGE3 - Lucro vs. Cotação')\n",
"pyplot.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment