Skip to content

Commit

Permalink
Add copy of Camara dos Deputados data due to CORS restrictions
Browse files Browse the repository at this point in the history
  • Loading branch information
augusto-herrmann committed Dec 4, 2024
1 parent d5dfa0c commit d0653c8
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 3 deletions.
29 changes: 26 additions & 3 deletions jupyterlite/notebooks/emendas/1 Baixar os dados.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
},
"outputs": [],
"source": [
"import json\n",
"import os\n",
"\n",
"import pandas as pd\n",
Expand Down Expand Up @@ -246,7 +247,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "6f17563acf1a4e56898ace36f1b8b00e",
"model_id": "3827f4e846ef4a32b16153e2f0c0a157",
"version_major": 2,
"version_minor": 0
},
Expand Down Expand Up @@ -817,6 +818,18 @@
"Como os dados de deputados não são muitos, é possível baixar tudo em uma única requisição."
]
},
{
"cell_type": "markdown",
"id": "3b7fe792-6eea-4e45-a5a8-5df8854cf273",
"metadata": {},
"source": [
"Infelizmente a API da Câmara dos Deputados usa cabeçalho\n",
"[CORS](https://pt.wikipedia.org/wiki/Cross-origin_resource_sharing)\n",
"com valor restritivo. Isso significa que não é possível baixar os\n",
"dados programaticamente por um navegador web, que seria o caso do\n",
"Jupyterlite."
]
},
{
"cell_type": "code",
"execution_count": 12,
Expand Down Expand Up @@ -1074,12 +1087,22 @@
}
],
"source": [
"# URL da API da Câmara para obter partidos\n",
"# URL da API da Câmara para obter deputados e partidos\n",
"url = \"https://dadosabertos.camara.leg.br/api/v2/deputados\"\n",
"\n",
"# Requisição dos dados\n",
"response = requests.get(url, params={})\n",
"data = response.json()[\"dados\"]\n",
"if response.status_code == 0: # download barrado pelo CORS da Câmara, que não permite leitura no navegador!\n",
" print(\n",
" \"Download de dados barrado pela regra CORS da API da Câmara dos Deputados!\\n\"\n",
" \"Lendo uma cópia guardada em arquivo (pode estar desatualizado).\"\n",
" )\n",
" with open(\"dados/deputados.json\", \"r\") as f:\n",
" data = json.load(f)\n",
"else: # tudo normal, conseguiu baixar\n",
" data = response.json()[\"dados\"]\n",
" with open(\"dados/deputados.json\", \"w\") as f:\n",
" json.dump(data, f)\n",
"\n",
"# Convertendo para DataFrame\n",
"df = pd.DataFrame(data)\n",
Expand Down
1 change: 1 addition & 0 deletions jupyterlite/notebooks/emendas/dados/deputados.json

Large diffs are not rendered by default.

0 comments on commit d0653c8

Please sign in to comment.