Scraper de boletins de casos de COVID-19 no Espírito Santo.
Project description
COVID19-ES-Py
API em Python para consulta de casos de COVID-19 no estado do Espírito Santo.
Recursos | Instalação | Como usar | Exemplos | Documentação | Considerações finais
Recursos
- Extrai dados sobre:
- Casos confirmados no estado
- Critérios de avaliação de casos
- Status e evolução de casos
- Faixa etária, sexo, etnia e grau de escolaridade de pacientes
- Sintomas e comorbidades de pacientes
- Viagens de pacientes
- Filtro de casos por data
- Estruturação e busca de casos por município
Instalação
Atualmente, o COVID19-ES-Py possui suporte para Python 3.6+. Uma mesma release é feita ao PyPI e ao GitHub ao mesmo tempo, portanto você pode usar a fonte que achar mais conveniente.
Pelo repositório PyPI
Utilize seu gerenciador de pacotes preferido para instalar o pacote. Com pip
:
pip install COVID19-ES-Py
Pelo código fonte
Através do pip
É possível usar o pip
, dentre outros gerenciadores de pacotes, para instalar o pacote através do repositório. Usando a release mais recente:
pip install https://github.com/AtilioA/COVID19-ES-Py/releases/latest
Buildando com setup.py
- Baixe a última release e extraia a pasta;
- Entre no diretório raiz do pacote pelo terminal e rode o comando
python setup.py install
Como usar
A API possui duas classes principais: LeitorRelatorio
e Relatorio
. A primeira é capaz de filtrar relatórios por data, etc, usando objetos Relatorio
para fazer a interface para o programador. A segunda pode ser utilizada para extrair informações de um relatório específico. Confira os exemplos a seguir:
Exemplos
Inicializando o leitor e obtendo dados do último relatório:
import COVID19_ES_Py
# Inicializando o leitor
leitor = COVID19_ES_Py.LeitorRelatorio()
# Carregando objeto Relatorio com dados do último arquivo csv emitido
relatorio = leitor.carrega_ultimo_relatorio() # Relatório do dia 17/04/2020
relatorio.casos
>>> {'AFONSO CLAUDIO': {'casosConfirmados': 2, 'obitos': 0},
...
'VITORIA': {'casosConfirmados': 209, 'obitos': 8}}
Total de casos do relatório:
relatorio.totalGeral
>>> {'casosConfirmados': 952, 'obitos': 28}
Pesquisando casos por município:
Retorna objeto Municipio
com casos do município no relatório:
relatorio.busca_casos_municipio("Vitória")
>>> "Município VITORIA:
209 casos confirmados.
8 óbitos."
# A busca ignora espaços extras e capitalização
relatorio.busca_casos_municipio(" santa teresa ")
>>> "Município SANTA TERESA:
4 casos confirmados.
0 óbitos."
# Também ignora caracteres especiais
relatorio.busca_casos_municipio("AFONSO CLAUDIO")
>>> "Município AFONSO CLAUDIO:
2 casos confirmados.
0 óbitos."
relatorio.busca_casos_municipio("arapiraca")
>>> exceptions.RelatorioError: O município "arapiraca" não foi encontrado no relatório. Pode ter ocorrido um erro de digitação ou o município não registrou casos de COVID-19.
Atributos da classe Município
:
-
nome (
str
): O nome do município. -
casos (
list
): (Caso
): Uma lista de objetos do tipo Caso. -
casosConfirmados (
int
): O número de casos confirmados no município. -
obitos (
int
): O número de óbitos confirmados em decorrência de COVID-19 no município.
Pesquisando relatorio por data:
Retorna objetos Relatorio
:
Filtrando até um dado dia:
relatorio16_04 = leitor.filtra_casos_ate_dia("16/04/2020")
>>> "Relatório do arquivo https://bi.static.es.gov.br/covid19/MICRODADOS.csv:
Total geral: {'casosConfirmados': 935, 'obitos': 28}
35 municípios infectados."
Filtrando apenas um dado dia:
relatorio16_04 = leitor.filtra_casos_no_dia("16/04/2020")
>>> "Relatório do arquivo https://bi.static.es.gov.br/covid19/MICRODADOS.csv:
Total geral: {'casosConfirmados': 11, 'obitos': 0}
5 municípios infectados."
A data de entrada pode ser formatada de várias formas.
Documentação
Você pode aprender mais sobre a API lendo a documentação oficial.
Considerações finais
Os dados são disponibilizados pelo Governo do Estado do Espírito Santo com a Superintendência Estadual de Comunicação Social do Espírito Santo (SECOM) e podem ser encontrados aqui.
Devido à natureza dos dados, há uma chance considerável de o scraping parar de funcionar a qualquer momento. Para minimizar essa possibilidade, muitos testes automatizados foram escritos; em caso de discrepância, tentarei atualizar o pacote o mais rápido possível.
Encontrou algum erro? Tem alguma sugestão para melhorar o COVID19-ES-Py? Crie uma issue! Contribuições são muito bem-vindas.
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
Built Distribution
File details
Details for the file COVID19-ES-Py-3.1.0.tar.gz
.
File metadata
- Download URL: COVID19-ES-Py-3.1.0.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.41.1 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c6ffe861ecac4db3c959719aea4e0cd96540f78ad3e2e7fe6524927188f835b |
|
MD5 | 84d00c8ed7eb532c92a5dfba57213ade |
|
BLAKE2b-256 | 9de5b0726b8d7d40c9adf110052c3ba02bbfccd0153c7a0ddbae95074e92a949 |
File details
Details for the file COVID19_ES_Py-3.1.0-py3-none-any.whl
.
File metadata
- Download URL: COVID19_ES_Py-3.1.0-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.41.1 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a480b825e9a2bb05b1ae83d806af0f1c3dc6cad4d064558aad8c4b94507d8402 |
|
MD5 | 8ec5f68029c4e67dd7466a54e3c8db0b |
|
BLAKE2b-256 | 51059c86967b2eecd07e532441159c6a8000feb9b347db42c5a8ab219cff8150 |