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.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

COVID19_ES_Py-1.3.0-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

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

Hashes for COVID19-ES-Py-1.3.0.tar.gz
Algorithm Hash digest
SHA256 921e9ec1e7e4d018a0e8ed4ad65f7c6902741ba5f2c33c5a23e8e7789007cb41
MD5 9dcffdefb40286c04ac652aa89d31bc2
BLAKE2b-256 c41384d29c44ecff331c09b02502ad1096bfacf05461c781aa6cf88b56537084

See more details on using hashes here.

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

Hashes for COVID19_ES_Py-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b11046be18c51147106d4d4d460983e295f6ce8d1281ac5b4f4f9df3b9ff786d
MD5 eeb83aaff5446c54f0b3c1f10c4ed432
BLAKE2b-256 2c717c46d292693cee872e3b5ec1359b07d38850ee41a7a987cc02c837b7e274

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