Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adiciona crawler para o Ceará #29

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

csmaniottojr
Copy link
Collaborator

No description provided.

@csmaniottojr csmaniottojr changed the title Feature/adiciona crawler para ceara Adiciona crawler para o Ceará Mar 22, 2020
@endersonmaia endersonmaia added enhancement New feature or request data-scraping labels Mar 23, 2020
@csmaniottojr csmaniottojr linked an issue Mar 23, 2020 that may be closed by this pull request
2 tasks
README.md Outdated
@@ -54,6 +54,9 @@ por lá.
Necessita de Python 3 (testado em 3.8.2). Para montar seu ambiente:

- Instale o Python 3.8.2
- Instale o Docker
- Baixe a imagem do splash: docker pull scrapinghub/splash
- Inicie o container com o splash: docker run -p 5023:5023 -p 8050:8050 -p 8051:8051 scrapinghub/splash
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Você poderia colocar isso num docker-compose?

@csmaniottojr
Copy link
Collaborator Author

@turicas Refatorei o spider. Agora os dados estão todos em JSON e não precisa mais do splash como dependência.

@endersonmaia
Copy link
Collaborator

@csmaniottojr tu consegue fazer rebase com a master, e dar squash nesse commit 37acc35 ?

só pra deixar o histórico mais linear 😉

@endersonmaia
Copy link
Collaborator

pelo que entendi, só precisa deste commit 3a35fec

@csmaniottojr csmaniottojr force-pushed the feature/adiciona_crawler_para_ceara branch from 3a35fec to 5a13646 Compare March 30, 2020 13:33
@csmaniottojr
Copy link
Collaborator Author

feito @endersonmaia

@turicas
Copy link
Owner

turicas commented Apr 2, 2020

Pessoal, atualização sobre os crawlers e a forma como estamos preenchendo os dados: vamos mudar a forma de subida dos dados pra facilitar o trabalho dos voluntários e deixar o processo mais robusto e confiável e, com isso, será mais fácil que robôs possam subir também os dados; dessa forma, os scrapers ajudarão bastante no processo. Com isso, criei algumas regras gerais e em breve farei algumas atualizações sobre:

  • Necessário fazer o scraper usando o scrapy;
  • Não usar pandas, BeautifulSoap, requests ou outras bibliotecas desnecessárias (a std lib do Python já tem muita biblioteca útil, o scrapy com XPath já dá conta de boa parte das raspagens e rows já é uma dependênciad esse repositório);
  • Deve existir alguma maneira fácil de fazer o scraper coletar os boletins e casos para uma data específica;
  • O método de parsing deve devolver (com yield) um dicionário com as seguintes chaves:
    • date: data no formato "YYYY-MM-DD"
    • state: sigla do estado, com 2 caracteres maiúsculos (deve ser um atributo da classe do spider e usar self.state)
    • city (nome do município ou em branco, caso seja o valor do estado, deve ser None)
    • place_type: "city" para município e "state" para estado
    • confirmed: inteiro, número de casos confirmados (ou None)
    • deaths: inteiro, número de mortes naquele dia (ou None)
    • ATENÇÃO: o scraper deve devolver sempre um registro para o estado que não seja a soma dos valores por município (esse dado deve ser extraído da linha "total no estado" no boletim) - essa linha virá com a coluna city com o valor None e place_type com "state";
  • Quando possível, use testes automatizados.

Nesse momento não temos muito tempo disponível para revisão, então por favor, só crie um pull request sugerindo com código de um novo scraper caso você possa cumprir os requisitos acima.

@csmaniottojr
Copy link
Collaborator Author

@turicas atualizei o PR seguindo as novas diretrizes

@turicas
Copy link
Owner

turicas commented Apr 8, 2020

@csmaniottojr eu criei na master bem rapidamente o corona_ce_spider.py (do zero, diferente do seu). O meu tem algumas coisas que o seu não tem (como o uso do date_utils) e vice-versa. Você conseguiria unificar os dois? O meu tem um problema: se algum município não aparece na lista de casos confirmados de uma data, ele não busca a quantidade de mortes para aquele município para essa data e parece que em alguns casos isso pode acontecer. Com relação ao seu, não verifiquei, mas tem que ver se "Sem informação" está sendo traduzido para "Importados/Indefinidos" (nomenclatura que usamos).

@csmaniottojr
Copy link
Collaborator Author

@turicas beleza, vou dar uma olhada pra fazer um merge entre os dois spiders

@csmaniottojr csmaniottojr force-pushed the feature/adiciona_crawler_para_ceara branch from f95c329 to fed1976 Compare April 10, 2020 18:52
@csmaniottojr
Copy link
Collaborator Author

@turicas corrigi o PR. o script está coletando corretamente casos confirmados e óbitos de cidades.

@turicas
Copy link
Owner

turicas commented Apr 15, 2020

@turicas corrigi o PR. o script está coletando corretamente casos confirmados e óbitos de cidades.

Obrigado! Revisarei assim que terminarmos a nova forma de coletar os dados dos voluntários (que também possibilitará coletar de robôs).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data-scraping enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CE
3 participants