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
- Extração de URLs de boletins emitidos pela Secretaria de Estado da Saúde (SESA)
- Extração de título, datas, corpo de notícia, números de casos e óbitos, etc, dos boletins
- Pesquisa de casos por município
- Pesquisa de boletim por data
- Filtro de municípios com casos confirmados
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 use 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
- 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: ScraperBoletim
e Boletim
. A primeira é capaz de extrair links de boletins, buscar boletins por data, etc, usando objetos Boletim
para fazer a interface para o programador. A segunda pode ser utilizada para extrair informações de um boletim específico. Confira os exemplos a seguir:
Exemplos
Inicializando o scraper e obtendo dados do último boletim:
import COVID19_ES_Py
# Inicializando o scraper
scraper = COVID19_ES_Py.ScraperBoletim()
# Carregando objeto Boletim com último boletim emitido
boletim = scraper.carrega_ultimo_boletim() # Boletim do dia 27/03/2020
boletim.casos
>>> {'Afonso Cláudio': {'casosConfirmados': '0', 'casosDescartados': '1', 'casosSuspeitos': '0', 'totalCasos': '1'},
...
'Vitória': {'casosConfirmados': '18', 'casosDescartados': '96', 'casosSuspeitos': '142', 'totalCasos': '256'}}
Total de casos do boletim:
boletim.totalGeral
>>> {'casosConfirmados': '53 + 1*', 'casosDescartados': '411', 'casosSuspeitos': '1.105', 'totalCasos': '1.570'}
Pesquisando casos por município:
Retorna dicionário de casos do município no boletim:
boletim.pesquisa_casos_municipio("Vitória")
>>> {'casosConfirmados': '18', 'casosDescartados': '96', 'casosSuspeitos': '142', 'totalCasos': '256'}
# A busca ignora espaços extras e capitalização
boletim.pesquisa_casos_municipio(" santa teresa ")
>>> {'casosConfirmados': '1', 'casosDescartados': '1', 'casosSuspeitos': '0', 'totalCasos': '2'}
# Também ignora caracteres especiais
boletim.pesquisa_casos_municipio("AFONSO CLAUDIO")
>>> {'casosConfirmados': '0', 'casosDescartados': '1', 'casosSuspeitos': '0', 'totalCasos': '1'}
boletim.pesquisa_casos_municipio("arapiraca")
>>> exceptions.BoletimError: O município "arapiraca" não foi encontrado no boletim. Pode ter ocorrido um erro de digitação ou o município não registrou casos de COVID-19.
Pesquisando boletim por data:
Retorna o boletim da data de entrada, se houver:
boletim29_03 = scraper.pesquisa_boletim_data("29/03/2020")
boletim29_03.pega_dataPublicacao_formatada()
>>> "29/03/2020 19h25"
A data de entrada pode ser formatada de várias formas.
Filtrando municípios com casos confirmados:
Retorna dicionário de dicionários com municípios com casos confirmados:
boletim05_04 = scraper.pesquisa_boletim_data("05/04/2020")
municipiosFiltrados = boletim05_04.filtra_municipios_com_casos_confirmados()
municipiosFiltrados
>>> {'Afonso Cláudio': {"casosConfirmados": '1', "casosDescartados": "3", "casosSuspeitos": "3", "totalCasos": "7", "obitos": "0"},
...
'Vitória': {'casosConfirmados': '62', 'casosDescartados': '252', 'casosSuspeitos': '58', 'totalCasos': '372', 'obitos': '2'}}
boletim05_04.nMunicipiosInfectados
>>> 18
len(municipiosFiltrados)
>>> 18
Documentação
Você pode aprender mais sobre a API lendo a documentação oficial.
Considerações finais
Encontrou algum erro? Tem alguma sugestão para melhorar a COVID19-ES-Py? Crie uma issue! Contribuições são muito bem-vindas.
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).
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-1.3.0.tar.gz
.
File metadata
- Download URL: COVID19-ES-Py-1.3.0.tar.gz
- Upload date:
- Size: 13.3 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 | 921e9ec1e7e4d018a0e8ed4ad65f7c6902741ba5f2c33c5a23e8e7789007cb41 |
|
MD5 | 9dcffdefb40286c04ac652aa89d31bc2 |
|
BLAKE2b-256 | c41384d29c44ecff331c09b02502ad1096bfacf05461c781aa6cf88b56537084 |
File details
Details for the file COVID19_ES_Py-1.3.0-py3-none-any.whl
.
File metadata
- Download URL: COVID19_ES_Py-1.3.0-py3-none-any.whl
- Upload date:
- Size: 31.0 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 | b11046be18c51147106d4d4d460983e295f6ce8d1281ac5b4f4f9df3b9ff786d |
|
MD5 | eeb83aaff5446c54f0b3c1f10c4ed432 |
|
BLAKE2b-256 | 2c717c46d292693cee872e3b5ec1359b07d38850ee41a7a987cc02c837b7e274 |