Skip to main content

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.

PyPI pyversions PyPI Travis (.org) Read the Docs Codecov Codacy grade

PyPI - Downloads License: GPL v3

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

  1. Baixe a última release e extraia a pasta;
  2. 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

COVID19-ES-Py-1.3.1.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

COVID19_ES_Py-1.3.1-py3-none-any.whl (31.1 kB view details)

Uploaded Python 3

File details

Details for the file COVID19-ES-Py-1.3.1.tar.gz.

File metadata

  • Download URL: COVID19-ES-Py-1.3.1.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

Hashes for COVID19-ES-Py-1.3.1.tar.gz
Algorithm Hash digest
SHA256 f8932dd8755f4ead73f901e35f19d127ffee4a6c1874c14c19b3568a2fa4fb4d
MD5 c2fe9aa17cb6392bf79d6aae8fb332e1
BLAKE2b-256 58bbe481cb824e0c527f56ed57d723cfd359dba147e7cb3c4a7c3d4c28041a56

See more details on using hashes here.

File details

Details for the file COVID19_ES_Py-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: COVID19_ES_Py-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 31.1 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

Hashes for COVID19_ES_Py-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dba75b63ab21381ef6db08422beb8b0140b47a2c5cbf35e679bf4749ba1d25f6
MD5 5e1fdb2f3680c58413fa13731a725dcb
BLAKE2b-256 a754d0fad45df4d7ca79862a23686a91c2782f2004958f4273b7f17f77feb328

See more details on using hashes here.

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